Разница времени, отображаемого в FE и BE на +1 час
Здравствуйте!
Столкнулся с любопытной проблемой, которая проявляет себя в том, что в бэкэнде и фронтэнде время отображается с разницей +1 час. Проблему решил заплаткой в экстеншине, который отдает время в FE так: PHP код:
Нечно подобное тут и тут. Версия TYPO3 4.7.10. Возможно, до меня её апдейтили с более ранней версии. PHP timezone установлена корректно. Возможно, кто-либо сталкивался или без столкновений знает, как решить проблему более корректно, чем хардкодом? |
Возможно разница во времени в PHP и MySQL?
|
Спасибо за гипотезу!
Проверяю так. Код:
SELECT name FROM mysql.time_zone_name; Код:
SELECT @@global.time_zone, @@session.time_zone; Я так понял, что время в MySQL стоит системное. Системное время настроено правильно, также как и время в PHP. Однако, пытаюсь заполнить базу недостающими данными. Команда mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql загрузила в базу 1715 записей, некоторые пропустила. Код:
SET GLOBAL time_zone = "Europe/Minsk"; Код:
SET SESSION time_zone = "Europe/Minsk"; Обновил кэш в TYPO3. Результат со временем без изменений. +1 час Откатываю время в MySQL обратно. Код:
SET GLOBAL time_zone = 'SYSTEM'; Т.о. дело не в разнице во времени м-ду PHP и MySQL. |
А если в одном и том же скрипте сделать ?
Код:
print_r date(DATE_ATOM, time()); |
2013-09-10T14:37:17+03:00
Array ( [0] => 2013-09-10 14:37:17 [NOW()] => 2013-09-10 14:37:17 ) |
Проверить serverTimeZone и phpTimeZone в Install tool.
|
Благодарю за совет, однако изменение этих свойств ни к чему не привело. Было решено умножить данные в поле времени на *60*60.
|
Часовой пояс GMT +4, время: 19:23. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot