我尝试获取一段时间内的所有日期。无论是一整天还是几个小时都没关系。我当前使用 DatePeriod 的代码对我不起作用。
Example:
[start] => DateTime Object
(
[date] => 2014-01-27 22:40:40
[timezone_type] => 1
[timezone] => +00:00
)
[end] => DateTime Object
(
[date] => 2014-01-28 17:40:40
[timezone_type] => 1
[timezone] => +00:00
)
$interval = new DateInterval('P1D'); // 1Day Interval
$daterange = new DatePeriod($time['start'], $interval ,$time['end']);
$return['days'] = array();
foreach($daterange as $date){
$return['days'][] = $date->format("Y-m-d");
}
我想得到
[0] => 2014-01-27
[1] => 2014-01-28
但我只得到
[0] => 2014-01-27
是否可以更改 DatePeriod 参数或其他内容?
DatePeriod
对象忽略最后一个周期。您可以通过按间隔增加结束日期来解决此问题:
$interval = new DateInterval('P1D');
$start->setTime(0, 0);
$end->setTime(0, 0)->add($interval);
$periods = new DatePeriod($start, $interval, $end);
demo https://eval.in/94720
Updated: remove (set to 00:00:00) time parts on start and end dates, if you are only looping via days.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)