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获取的格林威治时间是系统设置的格林威治时间。。。。。。