php开发时区问题
遇到问题:取数据的时候,使用date函数对时间戳进行格式转换的时候,时间相差8个小时。
问题原因:php在使用date函数的时候,会依照所在时区去进行计算。
问题举例:你的服务器放在英国,但是php.ini中也没有配置时区的问题。这样php就会以默认系统的时区(英国时间)作为时区去进行显示。这个时候在中国查看网页,就会时间相差8个小时。
php输出时间混乱原因:
1:保存的时候没有设置时区,取数据的时候使用了date函数。
2:保存时调整了时区的时候,取数据的时候再次调整了
解决方案:
laravel框架:使用的laravel框架,配置文件中的app.php文件设置了时区。'timezone' => 'PRC',
php解决:php.ini文件配置date.timezone = PRC
在php代码开头,可以使用ini_set函数来临时修改一些php的默认配置,可以:
ini_set('date.timezone','Asia/Shanghai');
和ini_set函数一样,date_default_timezone_set函数也可以临时修改php配置。
date_default_timezone_set('Asia/Shanghai');
ini_set('date.timezone','Asia/Shanghai');
和ini_set函数一样,date_default_timezone_set函数也可以临时修改php配置。
date_default_timezone_set('Asia/Shanghai');
关于时间的方法:
可变:date()会根据时区不同数据不同
不可变:time()、gmdate()。不会根据时区不同显示数据不同
不可变:time()、gmdate()。不会根据时区不同显示数据不同
具体理解:php开发 时区问题