Проблема с часовым поясом по умолчанию 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

Другие вопросы по тегам