PHP time() 有时会关闭几秒钟,然后在下次调用时更正
Posted
技术标签:
【中文标题】PHP time() 有时会关闭几秒钟,然后在下次调用时更正【英文标题】:PHP time() sometimes off by a few seconds, then correct next time it is called 【发布时间】:2019-01-28 22:37:39 【问题描述】:我有一个在黑盒 Web 服务上运行的简单 php 程序,它使用 time()
函数。我注意到time()
函数在我的程序中并不是特别一致。我在网页上显示时间,当我刷新页面时,会显示更新的时间。
有时当我刷新时,时间会在50
和100
秒之间跳跃,然后下次我刷新页面时,它会跳回到较低(更一致)的 Unix 时间戳,与显示的时间一致 2 次刷新以前的。
代码很简单:
<?php
echo(time());
?>
问题
为什么time()
函数的结果有时会关闭几秒钟,然后下次更正?
【问题讨论】:
我从未遇到过time()
的此类问题。它肯定不会降低。
time()
基于您服务器的时间,因此听起来您的服务器时钟存在某种问题。听起来它正在同步到一个错误的数据源,然后恢复或其他什么。
可能是您的机器时钟走偏了,然后它与时间服务器同步并自行纠正。
你的服务器时间是多少?
如果您在一个在多个 Web 服务器上进行负载平衡的 Web 服务上运行它,则很可能其中一个 Web Head 的时间与其余的不同步。
【参考方案1】:
time()
函数在跨多个服务器运行时有时会给出不同的结果。负载均衡器可以将您定向到时间一致的服务器。如果负载平衡器随后将您定向到系统时钟发生偏移的其他服务器,您可能会从 time()
函数中获得不同的结果。
如果系统时钟发生偏移,则时间可能会在某一时刻不正确而在另一时刻更正的其他情况。然后在与时间服务器重新同步的过程中,它更新了时间,导致您失去或获得时间。
【讨论】:
以上是关于PHP time() 有时会关闭几秒钟,然后在下次调用时更正的主要内容,如果未能解决你的问题,请参考以下文章
Python脚本在几秒钟后自动关闭,当它从IP摄像机对RTSP实时源进行对象检测时?