0

我正在尝试使用DatePeriod类获取两个日期之间的所有日期。当输入的日期为同一月份时,它工作正常,但当两个日期为不同月份时,它不会返回所有日期。

如果日期是2013-06-272013-07-05它只返回2013-06-27, 2013-06-28, 2013-06-29, 2013-06-30。它没有给出其余的日期。

代码

 $begin = new DateTime($start);
 $last = new DateTime($end);
 $interval = DateInterval::createFromDateString('1 day');
 $period = new DatePeriod($begin, $interval, $last); 
4

1 回答 1

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?

于 2013-06-26T07:51:25.097 回答