我不断收到这个错误:
消息:date()[function.date]:依靠系统的时区设置是不安全的。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。 我们select'America / New_York'代替'EST / -5.0 / no DST'
我编辑了我的php.ini,并添加到它的结尾:date.timezone =“America / New_York”
保存php.ini并重新启动Apache后,我仍然得到错误。 我也尝试重新启动整个服务器无济于事。
我在CentOS 5.6上运行cPanel / WHM,如果这有什么区别的话。 另外,PHP处理程序是suphp。
我不知道接下来要尝试什么…有什么指导?
打开相应的php.ini文件并添加以下内容,用正确的时区replace时区(时区名称列表 – http://php.net/date.timezone ):
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "America/Chicago"
多一点细节:
这听起来像你的系统上可能有多个php.ini,并且编辑了错误的php.ini。 我相信可以使用suPHP为每个虚拟主机指定一个不同的php.ini目录(使用suPHP_ConfigPath选项)。
有几个select对你开放。 首先:你可以(如错误消息build议)使用:
date_default_timezone_set()
但是,这确实会使您的代码不便于携带。
或者,您可以通过创build一个phpinfo页面来仔细检查脚本执行时正在加载哪个php.ini文件; 即只是一个Web访问的PHP文件与以下内容:
<?php phpinfo();
查看页面并查找标记为“已加载configuration文件”和“已parsing的其他.ini文件”的部分。 这些应该告诉你哪些ini文件需要编辑。
检查列出的所有文件是值得的,因为它们中的任何一个都可能包含覆盖已设置的文件的misspelt date.timezone设置。
我通过删除string值的引号来解决这个问题。
所以,
date.timezone =“欧洲/伦敦”
成为…
date.timezone =欧洲/伦敦
问题就消失了。 我虽然有点担心。
我刚刚解决了这个问题。 起初,我认为错误的php.ini正在被读取。 经过多次检查,我发现了这个问题。 这是,我有一个额外的“在php.ini的中间,所以这是一个错误,防止其余的加载。 我修好了,它完美的。 您可以通过运行以下命令来查看是否有任何错误:php -i | grep php.ini | 尾巴-n2
马里亚诺