3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start_date = '2015-09-21'; $end_Date = '2016-09-21'; $date1 = new DateTime($start_date); $date2 = new DateTime($end_Date); $interval = $date1->diff($date2); $weeks = floor(($interval->days) / 7); for($i = 1; $i <= $weeks; $i++){ $date1->add(new DateInterval('P4D')); echo $i." = ".$start_date." - ".$date1->format('Y-m-d')."\n"; $date1->add(new DateInterval('P3D')); $start_date = $date1->format('Y-m-d'); }
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 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.26, 8.4.1 - 8.4.13
1 = 2015-09-21 - 2015-09-25 2 = 2015-09-28 - 2015-10-02 3 = 2015-10-05 - 2015-10-09 4 = 2015-10-12 - 2015-10-16 5 = 2015-10-19 - 2015-10-23 6 = 2015-10-26 - 2015-10-30 7 = 2015-11-02 - 2015-11-06 8 = 2015-11-09 - 2015-11-13 9 = 2015-11-16 - 2015-11-20 10 = 2015-11-23 - 2015-11-27 11 = 2015-11-30 - 2015-12-04 12 = 2015-12-07 - 2015-12-11 13 = 2015-12-14 - 2015-12-18 14 = 2015-12-21 - 2015-12-25 15 = 2015-12-28 - 2016-01-01 16 = 2016-01-04 - 2016-01-08 17 = 2016-01-11 - 2016-01-15 18 = 2016-01-18 - 2016-01-22 19 = 2016-01-25 - 2016-01-29 20 = 2016-02-01 - 2016-02-05 21 = 2016-02-08 - 2016-02-12 22 = 2016-02-15 - 2016-02-19 23 = 2016-02-22 - 2016-02-26 24 = 2016-02-29 - 2016-03-04 25 = 2016-03-07 - 2016-03-11 26 = 2016-03-14 - 2016-03-18 27 = 2016-03-21 - 2016-03-25 28 = 2016-03-28 - 2016-04-01 29 = 2016-04-04 - 2016-04-08 30 = 2016-04-11 - 2016-04-15 31 = 2016-04-18 - 2016-04-22 32 = 2016-04-25 - 2016-04-29 33 = 2016-05-02 - 2016-05-06 34 = 2016-05-09 - 2016-05-13 35 = 2016-05-16 - 2016-05-20 36 = 2016-05-23 - 2016-05-27 37 = 2016-05-30 - 2016-06-03 38 = 2016-06-06 - 2016-06-10 39 = 2016-06-13 - 2016-06-17 40 = 2016-06-20 - 2016-06-24 41 = 2016-06-27 - 2016-07-01 42 = 2016-07-04 - 2016-07-08 43 = 2016-07-11 - 2016-07-15 44 = 2016-07-18 - 2016-07-22 45 = 2016-07-25 - 2016-07-29 46 = 2016-08-01 - 2016-08-05 47 = 2016-08-08 - 2016-08-12 48 = 2016-08-15 - 2016-08-19 49 = 2016-08-22 - 2016-08-26 50 = 2016-08-29 - 2016-09-02 51 = 2016-09-05 - 2016-09-09 52 = 2016-09-12 - 2016-09-16

preferences:
132.69 ms | 412 KiB | 5 Q