两台服务器中的PHP相同时区不同分钟

Posted

技术标签:

【中文标题】两台服务器中的PHP相同时区不同分钟【英文标题】:PHP Same Timezone Different Mins in Both Servers 【发布时间】:2015-01-27 09:30:23 【问题描述】:

我有 2 台服务器,其中我在测试脚本中有以下代码

<?php

date_default_timezone_set( "Europe/Athens" );
echo "TimeZone: " . date_default_timezone_get();
echo "<br />Current Time: " . date("Y-m-d H:i:s",time());  
?>

我在两台服务器上上传了这个脚本,我在同一时间运行并且响应是:

服务器 1

TimeZone: Europe/Athens
Current Time: 2014-11-28 19:27:19

服务器 2

TimeZone: Europe/Athens
Current Time: 2014-11-28 19:21:08

您会注意到秒/分钟不一样。

为什么?

【问题讨论】:

这些是在同一个物理硬件上吗?服务器的时钟是否与任何东西同步? 因为时间来自服务器,而不是PHP?你检查过那些服务器上的时间吗? 【参考方案1】:

系统时钟设置在不同的时间,仅此而已 - 至少其中一个不准确。大概其中一个或两个不同步。理想情况下,您应该与 NTP 之类的东西同步。

这不是你会在你的 PHP 代码中做的事情——这可能是询问服务器管理员的问题。

换句话说,您的代码 没问题,这是管理问题。这不太可能是时区信息的差异。

【讨论】:

但是...我是服务器管理员 :D 。我怎样才能用命令或其他东西正确地同步它们? @BlackDream:这很难回答,因为我们对服务器一无所知,甚至不知道它们的操作系统。在这一点上,真的是 ServerFault 的一个问题……先做一些研究(说实话,搜索 ntp 和您的操作系统名称可能就足够了),然后询问 ServerFault 是否需要。服务器管理本身在这里是题外话。 你的服务器是基于linux的吗? 如果基于 linux:/usr/sbin/ntpdate -u 0.rhel.pool.ntp.org 这应该可以工作。如果你想每半小时更新一次时间,你也可以做一个 cron 工作例如:*/30 * * * * /usr/sbin/ntpdate -u 0.rhel.pool.ntp.org

以上是关于两台服务器中的PHP相同时区不同分钟的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 和 MySQL 上处理时区的最佳方法是啥?

PHP MySQL查询在结果中显示错误的日期时间

Linux and Unix下修改时区的方法

php网站部署两套代码在两台服务器上面,如何做到上传文件同步

即使在 php 中设置时区后,服务器中的时间戳也会给出错误的时间

时区分钟偏移量的 TimeZoneInfo