系统是Centos6.3,Apache 2.2.15 + mod_fcgid + PHP 5.3.3
值有问题date.timezone
。全局中是/etc/php.ini
这样提及的:
date.timezone = "Europe/Moscow"
并且未在用户本地 php.ini 中提及。因此,我收到很多警告,例如:
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead in ...
将date.timezone
参数包含到用户的 php.ini 中可以解决问题,但我不认为这是最好的解决方案。
也许有人遇到过这个问题并可以提供建议?
谢谢!
PS/etc/php.d/timezone.ini
使用时区信息创建什么也不做:(
答案1
您需要date.timezone
为每个用户的ini
文件添加记录。经过一些实验,似乎日期时区将默认为全局值,但仍会发出电子通知和/或严格或者电子警告。
测试全局设置
bash~> php -r 'print ini_get("date.timezone").PHP_EOL;'
Europe/Moscow
bash~> php -r 'print date_default_timezone_get().PHP_EOL;'
Europe/Moscow
date.timezone
测试未设置的user.ini
bash~> php -c /path/to/user.ini -r 'print ini_get("date.timezone").PHP_EOL;'
""
bash~> php -c /path/to/user.ini -r 'print date_default_timezone_get().PHP_EOL;'
Warning: ... We selected 'Europe/Moscow' for 'EEST/4.0/DST' instead in Command line code on line 1
Europe/Moscow
唯一的其他选择是要求每个应用程序以编程方式设置默认时区,但这不现实并且需要付出更多努力。
if(!ini_get('date.timezone')) {
date_default_timezone_set('Europe/Moscow');
}