PHP日期范围问题

时间:2010-12-14 22:31:43

标签: php mysql

今天我的日期范围有一个相当奇怪的问题。

$oBeginDate = newDateTime('last wednesday');
$oEndDate = newDateTime('next tuesday');
echo $oBeginDate->format('d/m/Y') . ' to ' . $oEndDate->format('d/m/Y');

这应该通常显示为2010年12月14日至2010年12月21日,但今天,2010年12月14日,它显示为2010年12月12日至2010年12月21日。

有关如何解决此问题的任何建议吗?

我希望自动更新时间为2010年12月8日至2010年12月14日,以保持一周的范围。

3 个答案:

答案 0 :(得分:2)

使用文字'last wednesday'或'next tuesday'返回相对于当前日期时间的日期。

如果您尝试从今天开始获取范围,则DateTime构造函数的默认参数为“now”,并将返回当前日期时间。

此外,未来或过去的“固定”日期必须明确声明。

如果您想要获取当天的当天日期,请明确传递名称。

    $startd = new DateTime('wednesday'); 

   $end_date = date_add($startd,date_interval_create_from_date_string('1 week'));
   echo $startd->format('d/m/Y').' to '.$endd->format('d/m/Y');

要在不参考星期几的情况下每天更新范围,请使用“now”而不是“wednesday”。

答案 1 :(得分:1)

上周三是8日。不确定为什么你会期待第14个星期二。

答案 2 :(得分:1)

今天,12月14日是星期二。所以上周三确实是12月8日。