【发布时间】:2016-06-16 10:48:30
【问题描述】:
我发现了最奇怪的错误。而且我不是要求修复,我只是想知道你们是否有同样的经历并将其留作将来参考。
我有以下代码,应该输出 2016 年的每一天
$day = "2016-01-01";
for($i = 1; $i<= 365; $i++){
$day = date("Y-m-d", strtotime($day)+60*60*24);
echo $day."<br/>";
}
但在30-10-2016 之后它停止增加并显示相同的日期。
PHP 版本是 5.6.22。这种情况每年都会发生,不仅是 2016 年。 知道是什么原因造成的吗? 这是这个特定 PHP 版本的问题吗? 这是时区问题吗? 您是否有过相同或类似的经历?
我感兴趣的是这个问题的原因。 strtotime 函数似乎有问题。
【问题讨论】:
-
对于 PHP 版本 5.5.9 - 它正常工作并打印所有值
-
使用 PHP 7.0 它也可以正常工作。
-
我可以在 5.4.45 下确认该错误。
-
夏令时?您的时区设置是什么 - 使用 UTC。
-
omg 当然是夏令时。我现在觉得很愚蠢:)