Return Iterative Datetime between Two Datetimes for Adding Records in Laravel

Viewed 32

Input:

$start = new DateTime('2021-09-13 06:00:00');
$end = new DateTime('2021-09-17 15:00:00');

Expected Output:

Start End Hours
2021-09-13 06:00:00 2021-09-13 15:00:00 9 hours
2021-09-14 06:00:00 2021-09-14 15:00:00 9 hours
2021-09-15 06:00:00 2021-09-15 15:00:00 9 hours
2021-09-16 06:00:00 2021-09-16 15:00:00 9 hours
2021-09-17 06:00:00 2021-09-17 15:00:00 9 hours

I have tried this as foundation, but not pretty sure it this would meet my expected output.

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

foreach ($period as $dt) {
  Log::info($dt->format("Y-m-d H:i:s \n"));
}
0 Answers
Related