我正在尝试使用 DatePeriod 类获取两个日期之间的所有日期。当输入的日期是同一个月时,它的工作正常,但是当两个日期是不同的月份时,不返回所有日期。
如果日期为 2013-06-27 且 2013-07-05 ,则仅返回 2013-06-27,2013-06-28 ,2013-06-29,2013-06-06 。它没有给出其余的日期。
$begin = new DateTime($start);
$last = new DateTime($end);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $last);
答案 0 :(得分:1)
我无法重现行为
<?php
$start = '2013-06-27';
$end = '2013-07-05';
$begin = new DateTime($start);
$last = new DateTime($end);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $last, DatePeriod::EXCLUDE_START_DATE);
echo 'phpversion: ', phpversion(), "\n";
foreach ( $period as $dt ) {
echo $dt->format("l Y-m-d H:i:s"), "\n";
}
echo "done.\n";
打印
phpversion: 5.4.7
Friday 2013-06-28 00:00:00
Saturday 2013-06-29 00:00:00
Sunday 2013-06-30 00:00:00
Monday 2013-07-01 00:00:00
Tuesday 2013-07-02 00:00:00
Wednesday 2013-07-03 00:00:00
Thursday 2013-07-04 00:00:00
done.
你使用的是哪个版本的php?