DDEV - php имеет неправильную дату / время внутри контейнера на Windows - PullRequest
1 голос
/ 11 марта 2020

Я использую DDev для локальной разработки и у меня есть один сайт, который я настроил, где php считает, что дата на 2,5 дня раньше, например, в настоящее время время / дата на моем хост-компьютере:

11 марта 2020 года, 4:42 вечера

Но когда я проверяю страницу с этим php:

<?php
$date = date('F d Y h:i:s');
echo $date;
?>

я вижу эту дату: 09 марта 2020 12: 59

Как мне решить проблему с датой?

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Редактировать 2020-03-13: Docker Рабочий стол 2.2.0.4 для Windows утверждает, что исправил эту ошибку.

Исправлена ​​ошибка, из-за которой контейнеры не выполняли синхронизировать время с хостом, когда хост-компьютер выходит из спящего режима. Исправления docker / for-win # 4526.

Исходный ответ:

Это на Windows? Docker Рабочий стол для Windows в последних выпусках имел проблемы, особенно связанные со сном или гибернацией хост-компьютера. Наилучшим подходом для обхода проблемы является https://thorsten-hans.com/docker-on-windows-fix-time-synchronization-issue - он рекомендует сценарий PS (или вручную отключить / включить синхронизацию времени в консоли администратора Hyper-V):

# fix-docker-machine-time-sync.ps1
$vm = Get-VM -Name DockerDesktopVM
$feature = "Time Synchronization"

Disable-VMIntegrationService -vm $vm -Name $feature
Enable-VMIntegrationService -vm $vm -Name $feature

Но обычно вы можете: ddev poweroff, а затем ddev start. Вы также можете ddev poweroff и перезапустить docker.

Это даже в примечаниях к выпуску для Docker Desktop для Windows 2.2.0.3 .

В некоторых случаях Docker контейнеры делают не синхронизировать время с хостом, когда хост-компьютер переведен в спящий режим

См. эти Docker Desktop для Windows проблем:

И обратите внимание, что Docker предоставил частный крайний выпуск для тестирования этого, любой, кто читает это, поможет всем проверять это. Ссылка на текущий закрытый выпуск . (Помните, что переход на Edge из стабильного означает потерю всех ваших Docker контейнеров и томов, что означает потерю баз данных ddev.)

0 голосов
/ 11 марта 2020

попробуйте добавить date_default_timezone_set

date_default_timezone_set("Asia/Bangkok"); 

заменить часовой пояс

...