it-swarm.com.ru

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 с системным часовым поясом, установленным как Riga)

ОС: Debian 6.0

Я проверил большинство вопросов, касающихся подобных проблем в SO/Google, но все они, похоже, указали неправильный часовой пояс.

Насколько я могу судить, существует проблема между php -> os. Конечно, поскольку неправильное смещение времени всегда постоянно, я могу вычесть разницу, но это не правильное решение.

Любые идеи будут с благодарностью. 

10
relic

Проблема выглядит аналогично тому, что я видел на одном из моих серверов. Выглядит как ошибка в php 5.3.2-1 . Попробуйте запустить скрипт php в отчете об ошибке и опубликуйте результаты.

5
Arie Skliarouk

Читая руководство PHP, кажется, что на поведение date.timezone влияют настройки в php.ini . Есть еще один способ установить часовой пояс по умолчанию во всех функциях даты/времени, и это date_default_timezone_set . Попробуйте установить это с:

date_default_timezone_set('Europe/Riga');

вместо вашего кода date.timezone.

14
Marco Pace

Часовой пояс системы может быть неправильным. Это приводит к сдвигу времени, заданному функцией PHP date (), хотя и php date.timezone (в php.ini), и системное время сервера верны. 

3
user2317245

У меня тоже были проблемы с часовым поясом. Это может быть удобно для кого-то. 

В моем случае Chile Sumer Time CLST вернул неправильное смещение тимзеона.

Обновление timezonedb сработало для меня.

Перейдите по адресу: https://pecl.php.net/package/timezonedb

Для Widnows Загрузите новейшую версию DLL, скопируйте в каталог "ext". Отредактируйте php.ini и поместите строку ниже:

расширение = php_timezonedb.dll

Для Linux Вы можете использовать:

pecl установить timezonedb

и в php.ini положить:

расширение = php_timezonedb.so

1
Piotr

Этот комментарий для часового пояса Азербайджана

У меня проблема с «Азия/Баку» на php 7.2 или php 7.1 версии.

Я решил проблему изменения на «Европа/Баку»

0
Turan Zamanlı