$startDay = "2011-03-31";
for($i=0; $i<6; $i++)
{
$startDaysArr[] = date("Y-m-d", strtotime($startDay) - 3600*24*$i);
}
$startDaysArr = array_reverse($startDaysArr, FALSE);
由于 2011-03-27时钟向前移动一小时,因此当 $startDay = "2011-03-31 时输出不正确00:00:00”
运行上述代码后。
从下面的结果可以看出,2011-03-27 缺失了。有人可以帮助我吗?非常感谢您的帮助。
-----当$startDaysArr = "2011-03-31 00:00:00"时输出----
Array //Correct One:
(
[25] => 2011-03-25 // 2011-03-26
[26] => 2011-03-26 // 2011-03-27
[27] => 2011-03-28 // 2011-03-28
[28] => 2011-03-29 // 2011-03-29
[29] => 2011-03-30 // 2011-03-30
[30] => 2011-03-31 // 2011-03-31
)
最佳答案
从中午开始工作,而不是午夜:
$startDay = "2011-03-31";
$currDay = $startDay;
for($i = 0; $i < 6; $i++) {
$startDaysArr[] = $currDay;
$currDay = date ("Y-m-d", strtotime ($currDay . " 11:59") - 3600 * 24 * $i);
}
这样,一个小时左右的变化将不会产生任何影响。事实上,您只存储日期部分,并将其与 11:59
时间结合使用,这意味着减去 24 小时应该是安全的(没有累积错误)。
关于php - 显示日期时出错 2011 年 3 月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757092/