我在Fedora虚拟机上安装了ZendServer CE(PHP 5.2),并将系统时区设置为“America / Chicago”。 我在我的php.ini文件中有date.timezone ='UTC',当我在网页上调用date_default_timezone_get()或显示date('T')时,它说'CDT'。
在php.net上的date_default_timezone_get()的文档说,它select默认时区时遵循此顺序:
- 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)
如果我通过“设置”GUI更改系统时区,然后重新启动服务器,date('T')返回我更改系统时区的任何内容,无论php.ini如何。 我也没有一个TZ环境variables,我目前没有在我的代码中的任何地方使用date_default_timezone_set()。
任何想法可能会发生什么? 我意识到我总是可以通过调用date_default_timezone_set('UTC')来覆盖系统时区,但是如果可能的话,我宁愿依赖于php.ini文件。
谢谢您的帮助,
戴夫
我认为你有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 -变量/
同时尝试查看用户的.bashrc中的内容