我在 php 中遇到了 strtotime 的问题。
$j = "2013-10-27";
for ($x = 0; $x < 100; $x++) {
$j = date('Y-m-d', strtotime($j) + 86400);
echo ' '.$j.' <br/>';
}
由于代码是 self 解释的,它会将一天添加到 $j 然后显示到浏览器。 但是当 $j = "2013-10-27"时,它只打印一个结果 ("2013-10-27")。如果我将 $j 更改为另一个日期,这确实有效,但也会卡在这个日期(和其他某个日期)。
我已经编写了其他代码来完成这项工作。 但是有谁知道为什么会失败,还是我的代码错了?
谢谢。
最佳答案
这是因为您所在的时区采用夏令时,并且在 10 月 27 日凌晨 1 点,时间恢复到午夜,使这一天成为 25 小时。
这可以通过设置时区来重现:
<?php
date_default_timezone_set('Europe/London');
$j = "2013-10-27";
for ($x = 0; $x < 100; $x++) {
$j = date('Y-m-d', strtotime($j) + 86400);
echo ' '.$j.' <br/>';
}
关于将某些日期字符串转换为日期时间值时出现 PHP strtotime 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720955/