为什么PHP显示的时间与服务器上时间差8小时

为什么PHP显示的时间与服务器上时间差8小时,第1张

1、修改PHP.ini这个文件

找到date.timezone这行,去掉前面的分号,改成:

date.timezone = Asia/Shanghai

2、修改 .htaccess文件

修改.htaccess文件有两种办法,下面的两条语句只要有一条即可

php_value date.timezone Asia/Shanghai

SetEnv TZ Asia/Shanghai

3、修改PHP代码

也是下面的两条语句只要其中的一句即可

date_default_timezone_set('Asia/Shanghai')

ini_set('date.timezone','Asia/Shanghai')

时钟概念

(1)UTC 

整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。

(2)GMT

格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

(3)CST

中国标准时间 (China Standard Time)【GMT + 8 = UTC + 8 = CST】

(4)DST

夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。(中国不使用)

硬件时钟:

RTC(Real-Time Clock)或CMOS时钟,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。

系统时钟:

一般在服务器启动时复制RTC时间,之后独立运行,保存了时间、时区和夏令时设置。

在CentOS 6版本,时间设置有date、hwclock命令,从CentOS 7开始,使用了一个新的命令timedatectl。

Centos7 修改系统时区timezone  ,解决快、慢8小时问题

如果服务器用非 UTC 的时间,时区转换很容易不一致,而且对于有 daylight saving 的时区,每年多一小时少一小时的那两天,系统就会出现各种诡异现象。

服务器使用UTC时间,如要显示用户所在时区的本地时间,在客户端转化即可。

一、查看服务器使用的时间类型

# timedatectl

我们可以看到,服务器使用的CST 时间

二、将服务器时间类型改为UTC

# timedatectl  set-timezone UTC

#  timedatectl set-time "YYYY-MM-DD HH:MM:SS"

#  timedatectl set-time   "HH:MM:SS"

# timedatectl

我们可以看到,服务器时间类型更改为UTC了

三、将系统时间写入硬件CMOS

#  clock  -w

#  date   -u    //显示UTC时间

分析:如果电脑开机后进入bios时间总是慢8个小时,说明系统时间错乱,则很可能是主板电池失效,甚至是主板时间晶振损坏。也不排除病毒感染所致或者系统时区设置错误。

处理:

1、先检查系统时区设置是否正确,并运行360安全卫士和360杀毒对硬盘进行全盘查杀,排除系统设置错误和病毒感染之后再进行以下操作。

2、去电子商店购置一块CR2032电池,替换掉主板上的电池,再开机按DEL键进入CMOS(笔记本一般按F2或其它屏幕提示的热键),装载预定义选项(按F9或选择包含LOAD单词的那行),再按F10键保存按Y键确定退出重启。

3、如果以上操作无效,则可能是主板晶振损坏。则需要更换主板,或者搜索下载网络校时工具设置每天开机自动校时或手工校时。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/452262.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-01
下一篇2023-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存