2

我注意到我的一个依赖于函数 date() 的脚本陷入了无限循环。在调查造成这种情况的原因时,我想出了一个非常简单且令人惊讶的测试:

<?php
echo (date("Y-m-d H:i:s",1330221136)."\n\n");
echo (date("Y-m-d H:i:s",1330222036)."\n");

由于第一个时间戳小于第二个,因此第一行应该返回更早的日期时间。但是上面代码的输出是:

2012-02-25 23:52:16 

2012-02-25 23:07:16

有人知道 PHP 5.3 中函数 date() 的任何故障吗?

4

2 回答 2

6

如果时钟恰好在当地时间 00:00 倒转一小时,这可能会合法地发生。所以:

  1. 您的代码有错误,因为它不允许发生这种情况
  2. 似乎在您当地的时区 DST 于 2012-02-26 00:00(当地时间)结束
  3. 这让我们知道您位于巴西(感谢 Fluffeh的发现!)
于 2012-09-05T15:33:59.610 回答
1

结果是复制/粘贴到我的安装中:

2012-02-26 02:52:16
2012-02-26 03:07:16

这对我来说似乎很好。

于 2012-09-05T15:35:34.047 回答