PHP неправильная дата/время
PHP date()
& time()
неверное время возврата:
, когда date.timezone = "Europe/Riga"
время, возвращенное date()
был 03-12-2011 08:57:12
, но системное время был 03-12-2011 01:57:12
(часовой пояс Европа / Рига-правильное время на данный момент).
Когда я изменил часовой пояс на "Европа / Лондон", время изменилось на 03-12-2011 06:57:12
( фактическое время 02-12-2011 23:57:12
)
время возвращенные date
/ hwclock --show
был правильным (03-12-2011 01:57:12
С системным часовым поясом, установленным как Рига)
ОС: Debian 6.0
Я проверил большинство вопросов, касающихся похожих проблем на SO / Google, но все они, похоже, имеют неправильный часовой пояс.
насколько я могу судить, существует проблема между php - > os. Конечно, поскольку неправильное смещение времени всегда постоянно, я мог бы вычесть разницу, но это не правильное решение.
любые идеи будут с благодарностью.
6 ответов
проблема похожа на то, что я видел на одном из моих серверов. Похоже на ошибка в php 5.3.2-1. Попробуйте запустить PHP-скрипт в отчете об ошибке и опубликовать результаты.
чтение руководства PHP кажется, что поведение дата.часовой пояс зависит от настроек в php.ini. Существует еще один способ установить часовой пояс по умолчанию во всех функциях даты/времени, и это для меня. Попробуйте установить его с помощью:
date_default_timezone_set('Europe/Riga');
вместо дата.часовой пояс код.
часовой пояс системы может быть неправильным. Это приводит к сдвигу во времени, заданном функцией PHP date (), хотя обе даты php.часовой пояс (в PHP.ini) и системное время сервера правильные.
У меня тоже были проблемы с часовыми поясами. Это может кому-то пригодиться.
в моем случае Chile Sumer Time CLST вернул неправильное смещение timzeone.
обновление timezonedb работал для меня.
на: https://pecl.php.net/package/timezonedb
Для Widnows загрузите самую новую версию dll, скопируйте в каталог "ext". Отредактируйте php.ini и положить ниже строка:
расширения=php_timezonedb.dll файлы
Для Linux вы можете использовать :
pecl установить timezonedb
и в php.ini поставил:
расширения=php_timezonedb.так
вы должны установить дату.часовой пояс в PHP.ini и перезапустить сервер http://php.net/manual/en/timezones.php
время PHP основано на шкале времени эпохи, которая использует GMT и более поздний UTC. Большинство людей теперь называют это время unix. Поскольку PHP использует время unix, часовые пояса не используются. Я считаю, что вычитание часов часового пояса в секундах является правильным методом для корректировки различий.