在我们使用到时间函数data()时,有时候会弹出下面这种错误:
“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的版本问题
这里博主给大家三个解决办法:
- 第一种永久设置这是这是针对所有脚本都有效
修改PHP的配置文件也就是php.ini文件,用记事本打开php.ini文件,找到date.timezone这一行代码,这一行是设置时区的代码,修改这里可以永久修改时区,一般出现这种错误就是因为data.timezone = UTC导致的,UTC是世界标准时间,而我们一般根据自己的需求用的只是中国的时间,比如上海时间,香港时间等等,如果是海外的项目才会用的国外的时间
用date_default_timezone_get();可以查看你的当前时区
只要改为这下面三种任意一种就行了然后重启服务器就行了
date.timezone=Asia/Shanghai //设置为上海时间
date.timezone=Asia/Hong_Kong //设置为香港时间
或者直接设置成PRC
date.timezone=PRC //设置为中国人民共和国时间
一定要重启服务器
如果要设置其他时区可以去php官网看时区表:https://www.php.net/manual/zh/timezones.php
- 第二种是动态设置只针对在这个页面设置之后生效
直接在你想修改的页面加上下面三行代码中任意用一条代码就可以行
date_default_timezone_set('Asia/Shanghai '); //设置为上海时间
date_default_timezone_set('Asia/Hong_Kong '); //设置为香港时间
date_default_timezone_set('PRC '); //设置为中国人民共和国时间
这种方法只能生效于,在用这个函数之后的脚本上。自己可以用下面代码实际测试一下
cheo '当前时区为:'. date_default_timezone_get().'<br/>'; //输出你现在的时区
date_default_timezone_set('PRC '); //设置为PRC时区
cheo '当前时区为:'. date_default_timezone_get().'<br/>'; //再次输出应该为PRC
- 第三种跟第二种方法差不多也是动态设置
通过ini_set()函数来设置,意思就是:运行时设置PHP的配置选项,通过这个函数不仅可以设置时区,还能设置其他的属性值具体可以设置哪些可以去PHP官网手册看一下这里就不一一举例了
ini_set()函数设置目录: https://www.php.net/manual/zh/ini.list.php
只要写上这行代码就行了
ini_set('date.timezone','Asia/Shanghai'); //设置时区属性,为上海时区
这种跟第二种方法是一样的,只能生效于,在用这个函数之后的脚本上。
本文详细介绍了如何解决PHP中由于时区设置不当导致的警告信息。提供了三种方法:永久修改php.ini文件中的时区设置;动态设置时区,适用于特定页面;以及使用ini_set()函数进行动态设置。每种方法都附有代码示例。
425

被折叠的 条评论
为什么被折叠?



