linux – 为什么php’date’函数返回错误的时间(关闭~24秒)?
发布时间:2020-12-13 23:10:38 所属栏目:Linux 来源:网络整理
导读:我在gentoo Linux上运行了以下小的php代码片段(php版本5.2.10-pl0-gentoo): #!/usr/bin/php5?class TestDaemon { public function __construct(){ while (TRUE){ unset($aDate); exec("date",$aDate); print("date("d.m.y H:i:s") yields: ".date("d.m.y
我在gentoo
Linux上运行了以下小的php代码片段(php版本5.2.10-pl0-gentoo):
#!/usr/bin/php5 <? class TestDaemon { public function __construct(){ while (TRUE){ unset($aDate); exec("date",$aDate); print("date("d.m.y H:i:s") yields: ".date("d.m.y H:i:s")." while 'date' yields $aDate[0].n"); sleep(1); } } } $oDaemon = new TestDaemon(); ?> 产出的产量如下: date("d.m.y H:i:s") yields: 27.03.14 07:05:27 while 'date' yields Thu Mar 27 07:05:03 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:28 while 'date' yields Thu Mar 27 07:05:04 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:29 while 'date' yields Thu Mar 27 07:05:05 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:30 while 'date' yields Thu Mar 27 07:05:06 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:32 while 'date' yields Thu Mar 27 07:05:07 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:33 while 'date' yields Thu Mar 27 07:05:09 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:34 while 'date' yields Thu Mar 27 07:05:10 UTC 2014. date("d.m.y H:i:s") yields: 27.03.14 07:05:35 while 'date' yields Thu Mar 27 07:05:11 UTC 2014. 正如你所看到的那样,大约时间已经过去了. 24秒在另一台机器(相同的操作系统,相同版本的PHP)上,我没有看到这样的偏移. 这种抵消的原因是什么?这是否来自闰秒差异?那么哪个系统给出了正确的时间?为什么php不使用Linux系统时间呢? 此外,在同一系统上使用mysql数据库时,这个时间偏移是否会成为问题的根源? 解决方法
这看起来像运行/ bin / date的shell被配置为使用“正确”的时区,并且php被配置为使用符合POSIX的时区.现在的差异应该是25秒,但如果tz数据超过两年,那么它将是24秒.有关为什么访问
http://www.ucolick.org/~sla/leapsecs/amsci.html并看到第二个情节的图片. “右”区域遵循绿线. POSIX区域需要在每个闰秒停止系统时钟,因此它们遵循蓝线的下降楼梯. [编辑以确定哪个使用哪种方法]
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |