Проблема с часовым поясом по умолчанию PHP в Fedora + Zend Server CE
У меня установлен ZendServer CE (PHP 5.2) на виртуальной машине Fedora, и системный часовой пояс установлен на "Америка / Чикаго". У меня date.timezone = 'UTC' в моем файле php.ini, и когда я вызываю date_default_timezone_get() или отображаю дату ('T') на веб-странице, он говорит 'CDT'.
В документации на php.net для date_default_timezone_get() говорится, что он следует этому порядку при выборе часового пояса по умолчанию:
- Reading the timezone set using the
date_default_timezone_set() function
(if any)
- Reading the TZ environment variable
(if non empty)
- Reading the value of the
date.timezone ini option (if set)
- Querying the host operating system
(if supported and allowed by the OS)
Если я изменяю системный часовой пояс через графический интерфейс "setup" и перезагружаю сервер, date('T') возвращает то, на что я изменил системный часовой пояс, независимо от того, что говорит php.ini. У меня также нет переменной окружения TZ, и я нигде не использую date_default_timezone_set() в моем коде.
Есть идеи, что может происходить? Я понимаю, что всегда могу переопределить системный часовой пояс, вызвав date_default_timezone_set('UTC'), но я предпочел бы полагаться на файл php.ini, если это возможно.
Спасибо за помощь,
Дейв
1 ответ
Я думаю, что у вас есть TZ, хотя вы думаете, что нет. Пожалуйста, будьте осторожны, ознакомьтесь с этим руководством, чтобы лучше понять TZ.
http://www.cyberciti.biz/tips/date-command-set-tz-environment-variable.html http://www.cyberciti.biz/faq/howto-linux-unix-change-setup-timezone-tz-variable/
Также попробуйте посмотреть, что находится в вашем пользователе.bashrc