php - 显示日期时出错 2011 年 3 月

标签 php

$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/

相关文章:

php - 选择在另一个表中具有一组值的行

javascript - 自动从 Woocommerce 谢谢重定向到传递变量的外部链接

php - 在同一页面中显示目标 url 的 javascript 或 jquery 弹出窗口

php - INSERT INTO mysql 时的唯一值

java - Aptana Studio 与 Eclipse

php - MySQL 查询可以在 PHPMyAdmin 中使用,但不能在 PHP 中使用

PHP:str_replace多种情况

PHP 更改导航栏中的颜色

php - 选择两列中一列为空的行

php - PDOStatement::getColumnMeta 返回原始表名而不是 View 名