今天同事告诉我说,在后台看到写入数据表的创建时间ctime(PHP时间戳)比正常情况下快了半小时。当时我第一反应肯定是时区设置错了。
根据经验开始排查
- 重新设置php.ini的timezone:
timezone=Asia/Shanghai
重启xampp后时间还是错。
- 修改THINKPHP的config.php文件:
DEFAULT_TIMEZONE => 'PRC'
未果。
- 在代码中设置时区:
date_default_timezone_set(‘Asia/Phnom_Penh’)//必写:柬埔寨时区
常用时区如下:
date_default_timezone_set('Asia/Shanghai');//Asia/Shanghai 亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing 亚洲/重庆
date_default_timezone_set('PRC');//其中PRC为 中华人民共和国
ini_set('date.timezone','Etc/GMT-8');
ini_set('date.timezone','PRC');
ini_set('date.timezone','Asia/Shanghai');
ini_set('date.timezone','Asia/Chongqing');
还是不行。
- 同步服务器的系统时间
在网上查找了相同的情况,可能是服务器的系统时间同步出了问题。一般编程语言获取的是当前系统的时间,命令行下执行date查看当前系统时间(用的是linux系统),果然不出所料,系统时间比正常快了一个小时左右。
有人执行这个同步系统时间:
[root@FCPD lampp]# date
Thu Oct 22 09:02:10 CST 2020
[root@FCPD lampp]# ntpdate time.nist.go
Error : Name or service not known
22 Oct 09:02:19 ntpdate[12903]: can't find host time.nist.go
22 Oct 09:02:19 ntpdate[12903]: no servers can be used, exiting
结果不行,尝试别的:
#设置系统时间与网络时间同步
ntpdate cn.pool.ntp.org
or => ntpdate -u ntp.api.bz
[root@FCPD lampp]# hwclock
Thu 22 Oct 2020 09:03:40 AM CST -0.876630 seconds
[root@FCPD lampp]# ntpdate cn.pool.ntp.org
22 Oct 09:04:37 ntpdate[12907]: the NTP socket is in use, exiting
[root@FCPD lampp]# date -R
Thu, 22 Oct 2020 09:05:18 +0800
[root@FCPD lampp]# ntpdate cn.pool.ntp.org
22 Oct 09:09:24 ntpdate[12912]: the NTP socket is in use, exiting
[root@FCPD lampp]# ntpdate -u ntp.api.bz
22 Oct 09:39:08 ntpdate[12915]: step time server 114.118.7.163 offset 1776.866614 sec
[root@FCPD lampp]# date
Thu Oct 22 09:39:19 CST 2020
再次查看系统时间及时间戳。OK 问题解决了。
参考文章:
Linux 网络时间同步
Linux命令-更新系统时间