关于时区引发的bug
time()方法不会受到时区设置的影响,返回的一直是格林威治时间,也就是这个数值始终是一直的
但是date函数和strtotime函数,在进行格式化转换时,会将时区的偏移量计算进去,也就是虽然time()返回的是正确的时间戳,但是date后,得到的并不是想要的时间,同理strtotime得到的时间戳也会是加上偏移量的时间戳
所以PHP环境中一定要设置时区:
- 修改php.ini中关于时区的设置,PHP5以后,配置文件引入时区的概念
date.timezone = “Asia/Shanghai”; - 在PHP代码中设置时区
date_default_timezone_set(‘Asia/Shanghai’); - 利用框架自带的属性设置时区
- yii:main.php中加入【‘timeZone’ => ‘Asia/Shanghai’,】
- TP:配置文件中加入【‘DEFAULT_TIMEZONE’ => ‘PRC’, 】