PHP获取两个日期之间的日期不能按预期工作

时间:2013-06-26 07:47:40

标签: php date period

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

如果日期为 2013-06-27 2013-07-05 ,则仅返回 2013-06-27,2013-06-28 ,2013-06-29,2013-06-06 。它没有给出其余的日期。

CODE

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

1 个答案:

答案 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?