php获取时间问题,用默认配置读到本地时间。。。。。

用date获取到时间有8小时时差

  因为php用date获取到的是格林威治时区的时间,而大陆时间和格林威治时间有8个小时时差,所以。。。。

     修改:网上有各种修改方式:

  比如:在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置。 

     时区标识符

      大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin

      港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)还有新加坡:Asia/Singapore 

    但是这样修改的缺点:要是你做的产品也要卖向海外的话,那就悲剧了。。。

          还有一种方式是修改服务器的php.ini文件。即:打开php.ini 查找 date.timezone 去掉前面的分号, = 后面加要设置的时区,重启apache服务器即可

然后问题来了:之前的php.ini的配置是默认配置,即应该获取的格林威治时间,(与大陆有8个小时时差),但是实际上却获取的是本地时间。。。

    然后重新设置系统时间为默认时间,获取的又是的格林威治时间;

    然后将时区为格林威治时区的时间设置为本地时间  --  得到本地时间

    然后再将时区为格林威治时区的时间设置为08:00 -- 得到08:00

    。。。

    然后就明白了,这个date获取的格林威治时间是系统设置的格林威治时间。。。。。。

原文地址:https://www.cnblogs.com/xnn1993/p/6053879.html