<?php
$month_start = new DateTime("first day of this month");
$month_end = new DateTime("last day of this month");
// find the monday on/before the start of the month
$start_date = clone $month_start;
$start_date->modify((1 - $start_date->format('N')) . ' days');
while ($start_date <= $month_end) {
echo max($month_start, $start_date)->format('Y-m-d') . ' to ' . min($start_date->modify('+6 days'), $month_end)->format('Y-m-d') . "\n";
$start_date->modify('+1 day');
}
2023-06-01 to 2023-06-04
2023-06-05 to 2023-06-11
2023-06-12 to 2023-06-18
2023-06-19 to 2023-06-25
2023-06-26 to 2023-06-30
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
2023-06-01 to 2023-06-04
2023-06-05 to 2023-06-11
2023-06-12 to 2023-06-18
2023-06-19 to 2023-06-25
2023-06-26 to 2023-06-30