0

DatePeriodクラスを使用して、2 つの日付の間のすべての日付を取得しようとしています。入力された日付が同じ月の場合は正常に機能しますが、2 つの日付が異なる月の場合はすべての日付が返されません。

日付が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 に答える