首页 > 解决方案 > I have 2 dates in Laravel, how can I run a auto generate post to go through between two dates with time period?

问题描述

I want to create a Question (question table) that has startDate and endDate and period that is in hour (1-2-3-... hours) and user_id

Now I want to auto generate question rows in another table (Question_user) between two dates with period

ex:

startDate = 2019-11-01 00:00:00

endDate = 2019-11-20 12:00:00

period = 12

Now I want to create questions in (Question_user) at:

2019-11-01 00:00:00

2019-11-01 12:00:00

2019-11-02 00:00:00

...

How can I do this?

*Date format -->Year/Month/Day

标签: laravellaravel-5eloquent

解决方案


在您的控制器中,添加以下功能:

protected function GenerateDateRange(Carbon $start_date, Carbon $end_date,$period)
{
$dates = [];
for($date = $start_date; $date->lte($end_date); $date->addHours($period)) {
    $dates[] = $date->format('Y-m-d H:i:s');
}
return $dates;
}

并像这样使用它:

$dateRanges=$this->GenerateDateRange(Carbon::parse("2019-11-01 00:00:00"),Carbon::parse("2019-11-20 12:00:00"),12);

然后 for 循环 $dateRanges 并插入您的数据。


推荐阅读