今天同事告诉我说,在后台看到写入数据表的创建时间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命令-更新系统时间