就在刚才,一位网友的获取时间总是相差8小时,一直不知道是为什么?后来联系上了我,我去看了一下他写的PHP代码,得到结果:
1、代码是没有任何问题的?
2、php.ini 配置文件中也启用了 date.timezone = PRC;
后来我用xshell连接上了他的服务器,我执行date命令,先检查当前服务器的时间:
[[email protected] ~]# date
Wed Mar 10 12:56:28 CST 2021
结果发现,是他的服务器本身的时间不准,他的服务器是centos7。
原因:
原因其实不用多说,大家都知道了,硬件时钟不与UTC时间一致问题,时区不一样所引起的。
解决方法
知道了原因,解决问题就容易多了,由于服务器时间相差8小时这个问题详细讲的话,解决方法其实有很多种,我就给大家分享两种我最常用的解决方法吧!具体如下:
第一种方法:ntpdate时间同步命令
1、安装ntpdate
# CentOS:
[[email protected] ~]# yum install ntpdate -y
# Debian/Ubuntu:
[[email protected] ~]# apt install ntpdate -y
2、执行ntpdate时间同步命令
# CentOS/Debian/Ubuntu 执行:
[[email protected] ~]# ntpdate 0.asia.pool.ntp.org
第二种方法:环境变量/etc/profile
1、在 /etc/profile 文件中增加一行:
export TZ='CST-8'
2、使文件立即生效,执行命令:
[[email protected] ~]# source /etc/profile
或者
[[email protected] ~]# ./etc/profile
总结:
两种方法都可以解决“服务器时间相差8小时”的问题,我个人比较偏向于第一种方法。为了保险起见,最好两种方法都用上。