欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决php的“It is not safe to rely on the system’s timezone settings”问题

程序员文章站 2023-11-29 23:47:04
如果使用php5.3以上版本时,如果没有正确的配置php.ini就会出现php日期函数的错误。以前很多旧的php编程教程没有说到这个问题,所以不少读者会觉得困惑,下面笔者为...

如果使用php5.3以上版本时,如果没有正确的配置php.ini就会出现php日期函数的错误。以前很多旧的php编程教程没有说到这个问题,所以不少读者会觉得困惑,下面笔者为大家讲述解决这个问题的三种方法。
"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"

实际上,从php 5.1.0,当对使用date() 等函数时,如果 timezone 设置不正确,在每一次调用时间函数时,都会产生 e_notice 或者 e_warning 信息。而又在 php 5.1.0 中,date.timezone 这个选项,默认情况下是关闭的,无论用什么php 命令都是格林威治标准时间,但是php 5.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(如果是 windows 系统,那么文件在 c 盘,windows 目录下,假如系统是安装在 c 盘)。使用记事本打开 php.ini 查找 date.timezone 去掉前面的分号修改成为:date.timezone = prc
重启http服务(如apache2或iis等)即可!

以上三种方法任选其中一种即可,小编推荐使用第三种方法,不用每次都要增加额外的代码。