今天我的日期范围有一个相当奇怪的问题。
$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日。
有关如何解决此问题的任何建议吗?
答案 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日。