我现在搜索了很多小时,似乎没人遇到这个问题。
我运行了一个脚本,该脚本将当前的时间戳写入两个服务器上。两者都有相同的操作系统,软件和相同的时区。
现在我发现,某些时间戳和当前时间()之间的差异是负数(是的,计算是正确的: time() - $older_timestamp
)
我在两个服务器上都倾倒了Time(),结果:它完全不同了一个小时。检查一下:
- time()在服务器#1:-1小时
- time()在服务器上#2:正确的时间戳
由于时间()应该始终基于UTC,所以我无法解释,这是如何发生的。
有人有任何想法吗?
来自Aachen的问候
显然是服务器一,服务器两个设置为不同的时间。检查 BIOS 和您的服务器的OS 时间。
要添加到快乐的节日中,我给你另一个选择。
OS的时区可能设置不正确。如果两个时钟都在同一时间显示,但一台服务器认为它在伦敦而另一台服务器认为它是在Aachen中,那么从系统调用返回的UTC时间将有所不同。
但是,如果您要安装NTPD
,这一切都不会发生。(通常)
这很可能是由于Apache在php.ini
中错误设置的时区引起的。检查php.ini
文件中的date.timezone =
文件,然后将其更改为时区。可以在此处找到PHP时区的列表:http://php.net/manual/en/timezones.php
例如:
date.timezone = 'America/Chicago'
如果您不能直接编辑php.ini
文件,也可以使用ini_set
。
ini_set('date.timezone', 'America/Chicago');