兴趣使然学编程 参考文章

如果你觉得最后这两个实例的运行结果不对,那是因为自 PHP5.0 开始,用PHP获取系统时间时,时间比当前时间少 8 个小时。原因是 PHP.ini 中没有设置 timezone 时,PHP 是使用的 UTC 时间,所以在中国时间要少 8 小时。因此你的时间都要 -8,所以代码是没问题的。

解决办法:

1.在PHP.ini文件中修改设置。

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Shanghai

这里真是。。。可以设置 Shanghai,Chongqin,Hong_Kong,TaiBei... 等等,可就是没有找到 Beijing,不知道是什么原因。

2.在PHP程序中运行时设置。

<?php
if(date_default_timezone_get() != "1Asia/Shanghai") date_default_timezone_set("Asia/Shanghai");
?>

注意:用 date_default_timezone_get 获得的时间设置中有一个 1,也不太清楚是杂回事呢。

3.在使用时间时自己多加 8*3600 秒也是行滴。

<?php
echo date("Y-m-d H:i:s",time()+8*3600);
?>