Проблема с часовым поясом по умолчанию PHP в Fedora + Zend Server CE - PullRequest
3 голосов
/ 08 апреля 2010

У меня установлен 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, если это возможно.

Спасибо за помощь,

Dave

1 Ответ

1 голос
/ 09 апреля 2010

Я думаю, что у вас есть 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

...