在 php.ini 中,默认是 date.timezone = UTC。修改为中国时区,修改为 date.timezone = PRC。
如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8。
另外,也可以在 PHP 页面头中设置。
date_default_timezone_set('PRC');
测试:
PHP 时区设置
装上PHP5后,会现这样的问题:
输出的时间和现在的时间是不相同的。
原因分析:未在程序或配置文件中设置服务器当地时区的话,PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入。
格林威治标准时间和北京时间大概差8个小时左右。
避免时间误差或解决时间相关8小时的方法,就需要对php时区做设置了。
解决方法:
在页头使用date_default_timezone_set()设置默认时区为北京时间。
时间和服务器当前时间一样了。
如果发生插入数据库错误的话,请确保 date('Y-m-d H:i:s') 中的 H 为大写。
另外,附date_default_timezone_set用法:
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 设定用于一个脚本中所有日期时间函数的默认时区
说明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 设定用于所有日期时间函数的默认时区。
注: 自 PHP 5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息。
参数
timezone_identifier
时区标识符,例如 UTC 或 Europe/Lisbon
返回值
本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。
或修改 php.ini 中 date.timezone 值,date.timezone = PRC 即可。
有了以上的方法,就不用怕php时区的问题了,任何日期与时间都能正常显示了。