A-A+

PHP 使用date()函数提示Warning: date()错误

2016年06月23日 PHP技术文章 暂无评论 阅读 6 views 次

今天在修正一个很早写的一个程序的时候,突然发现在其最新的PHP5环境下已经不起作用了,当然这跟最新的 php.ini 里面的配置有关,在老版的 php 中,php.ini 里面直接就设定了时间,或者说根本就不用管时间这一块。

今天在使得 php5.3 以上版本运行程序的时候,直接提示如下的错误信息:

“PHP 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 ‘UTC’ for ’8.0/no DST’ instead in”//xiariboke.com

当然在页面里面使用 date() 调用了当前时间,这是提示要在页面里面或者在 php.ini 里面设定一个时间值,告诉程序要使用哪个地方的时间,所以修改起来也就简单了许多,下面夏日博客就来总结一下。

实际上,从 PHP 5.1.0 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息。而又在php5.1.0中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中好像如果没有设置也会强行抛出了这个错误的,解决此问题,只要本地化一下,就行了。

以下是三种方法(任选一种都行):

一、在页头使用date_default_timezone_set()设置 date_default_timezone_set(‘PRC’); //东八时区 echo date(‘Y-m-d H:i:s’);

二、在页头使用 ini_set(‘date.timezone’,'Asia/Shanghai’);

三、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC 重启http服务(如apache2或iis等)即可。

XXX可以任意正确的值。对于我们国内来说:可以为以下值:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi

依次为重庆,上海,乌鲁木齐,港台地区可用:Asia/Macao,Asia/Hong_Kong,Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia/Singapore,当然PRC也行.

总结,原来在php5.3之前的版本对日期没有严格的限制所以就是我日期设置不正确也没有问题,但在php5.3之后就不行了,最简单的方法莫过于直接在调用时间之前添加一句 ini_set(‘date.timezone’,'Asia/Shanghai’); 了。。

标签:

给我留言