php5中date()获得的时间不是当前时间的解决方法

发布时间:2019-08-02编辑:脚本学堂
自php5.10起加入了时区的设置,在php中显示的时间都是格林威治标准时间,因此便与中国的用户会差八个小时。修改php.ini中的 date.timezone 参数:

自php5.10起加入了时区的设置,在php中显示的时间都是格林威治标准时间,因此便与中国的用户会差八个小时。

修改php.ini中的 date.timezone 参数:
 

复制代码 代码如下:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =

默认是关闭的,只需把注释去掉,改为即可
 

复制代码 代码如下:
[Date]
; Defines the default timezone used by the date functions
date.timezone = PRC

其中PRC是“中华人民共和国”!
其他选项可以参考php手册
其中的亚洲地区漏掉了北京,MGB的。

如果没有修改php.ini的权限,只需要在调用时间日期函数的时候,调用 date_default_timezone_set('
PRC') 即可!
也可以调用date_default_timezone_get()来查看当前的时区设置!

關於XXX,大陸內地可用的值是:
Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,台北)
台灣地区可設為:date.timezone = "Asia//Taipei"
還有新加坡:Asia/Singapore

附:PHP5中的时间相差八小时的解决办法
php5.1.2的时间显示整整少8个小时,
 

复制代码 代码如下:
<?php
echo date("Y-m-d H:i:s");
?>
 

结果自己测试果然是相差8小时。

原来在php5以及起以上的版本,要输出本地的时间(限中国),可以参考如下的写法:
 

复制代码 代码如下:
<?php
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s');
?>

这个也是可以的:
 

复制代码 代码如下:
<?php
date_default_timezone_set('Asia/Chongqing');
echo date('Y-m-d H:i:s');
?>

看到美妙的结果了吧:时间相差八小时的问题成功解决了。