3v4l.org

run code in 300+ PHP versions simultaneously
<?php function rangeWeek(string $start,string $end): array{ $dtStart = date_create($start); $dtEnd = date_create($end); $weeks = []; while($dtStart <= $dtEnd){ $weeks[] = [ 'start' => $dtStart->format('Y-m-d'), 'end' => min($dtEnd,$dtStart->modify('Sunday this week'))->format('Y-m-d'), 'week' => $dtStart->format('W') ]; $dtStart->modify('next Monday'); } return $weeks; } $startDate = '2022-08-08'; //Monday $endDate = '2022-08-23'; //Tuesday $weeks = rangeWeek($startDate, $endDate); var_dump($weeks);

preferences:
26.45 ms | 406 KiB | 5 Q