我现在search了好几个小时,好像没有人遇到过这个问题。
我运行一个脚本,在两台服务器上将当前时间戳写入数据库。 两者都有相同的操作系统,软件,…和相同的时区。
现在我发现,一些时间戳和当前时间()之间的差异是负数(是的,计算是正确的: time() - $older_timestamp
)
我在两台服务器上都浪费了时间(),结果:它相差一个小时。 一探究竟:
因为time()应该总是以UTC为基础的,所以我不能解释这是怎么发生的。
有人有什么想法吗?
来自亚琛的问候
显然,服务器一和服务器二被设置为不同的时间。 检查BIOS和您的服务器的操作系统时间。
为了增添欢乐,我给你另外一个选择。
操作系统的时区可能设置不正确。 如果两个时钟同时显示,但是一个服务器认为它在伦敦而另一个认为它在亚琛,则从系统调用返回的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');