お祭り会場を準備中です。フェスティバルの日付の日時フィールドを持つテーブルがあります。フェスティバルは「2013 年 3 月 6 日」と「2013 年 4 月 7 日」の間になります。だから私はこれらの答えのようにループを作成しました:
Schema::create('dates',function($table)
{
$table->increments('id');
$table->date('date');
$table->timestamps();
});
$starting_date = new DateTime('2013-03-06');
$ending_date = new DateTime('2013-04-06');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($starting_date , $interval, $ending_date);
foreach($period as $dt)
{
DB::table('dates')->insert(array(
'date' => $dt
));
}
データベースは 4 月 4 日までいっぱいになり、ループは 30 日以上追加されません。不足している日数の修正を見つけるのを手伝ってもらえますか?
ps: 代わりの while ループを使用しましたが、結果は同じでした:
$starting_date = new DateTime('2013-03-06');
$ending_date = new DateTime('2013-04-07');
while($starting_date <= $ending_date){
DB::table('dates')->insert(array(
'date' => $starting_date
));
}
$starting_date->add(new DateInterval('P1D'));
}