0

各エントリに 10 の日付を入力できるデータベースがあります。ユーザーは開始日と終了日を選択し、すべての日付をカレンダー ページのデータベースに入力します。

$date1 = '2013-01-31';
$date2 = '2013-02-05';

for($one = $date1;$one>$date2;$one = strtotime(date('m/d/Y',$one)." -1 day"))
{
    echo $one;
} 

まず、すべての日付を抽出する必要があります。上記は機能しません。つまり、日付 31/01/02/03/04/05 をデータベースに入力する必要があります。

4

1 に答える 1

3

DateTime により、これが非常に簡単になります。

PHP 5.3 以降のユーザー向け

$start    = new DateTime('2013-01-31');
$end      = new DateTime('2013-02-05');
$interval = DateInterval::createFromDateString('1 day');
$period   = new DatePeriod($start, $interval, $end);

foreach ($period as $dt)
{
  echo $dt->format("m/d/Y") . PHP_EOL;
}

PHP 5.2 ユーザー向け

$start    = new DateTime('2013-01-31');
$end      = new DateTime('2013-02-05');
while ($start <= $end)
{
    echo $start->format("m/d/Y") . PHP_EOL;
    $start->modify("+1 day");
}

参照

于 2013-02-15T14:33:40.450 に答える