杨二

Machine repeats, Human creates

PHP时间总是差8小时问题

date("Y-m-d G:i T",time()) 取出来的时间和本地时间总是差 8 个小时,系统明明是中国标准时(GMT+8),最后终于找到了问题所在:

原来从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,所以通过 PHP 获取的时间默认都是格林威治标准时间,和我们的时间(北京时间)差了正好 8 个小时,有以下两种方法可以恢复正常的时间:

  • 一劳永逸,直接修改php.ini:打开php.ini,查找date.timezone,去掉注释,**=**后面加上中国时区Asia/Shanghai(或者PRC),重启 http 服务(nginx 或者 Apache)。
  • 如果不想修改php.ini,则在关于时间的初始化的语句的上面加上date_default_timezone_set('PRC');

参考: