3v4l.org

run code in 300+ PHP versions simultaneously
<?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'); }
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
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

preferences:
101.33 ms | 407 KiB | 5 Q