3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * @param \DateTime $date Date of the original meeting * @return \DateTime Date of the next meeting */ function getSameDayNextYear(\DateTime $date = null) { if(!$date){ $date = new \DateTime(); } return (new \DateTime())->setISODate((int)$date->format('o') - 1, (int)$date->format('W'), (int)$date->format('N')); } $start = new \DateTime(); $end = new \DateTime('+ 4 months'); $interval = new \DateInterval('P5D'); $period = new \DatePeriod($start, $interval, $end); $format = 'l d-m-Y'; foreach($period as $date){ echo $date->format($format) . ' => ' . getSameDayNextYear($date)->format($format) . "\n"; }
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 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.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Thursday 07-03-2024 => Thursday 09-03-2023 Tuesday 12-03-2024 => Tuesday 14-03-2023 Sunday 17-03-2024 => Sunday 19-03-2023 Friday 22-03-2024 => Friday 24-03-2023 Wednesday 27-03-2024 => Wednesday 29-03-2023 Monday 01-04-2024 => Monday 03-04-2023 Saturday 06-04-2024 => Saturday 08-04-2023 Thursday 11-04-2024 => Thursday 13-04-2023 Tuesday 16-04-2024 => Tuesday 18-04-2023 Sunday 21-04-2024 => Sunday 23-04-2023 Friday 26-04-2024 => Friday 28-04-2023 Wednesday 01-05-2024 => Wednesday 03-05-2023 Monday 06-05-2024 => Monday 08-05-2023 Saturday 11-05-2024 => Saturday 13-05-2023 Thursday 16-05-2024 => Thursday 18-05-2023 Tuesday 21-05-2024 => Tuesday 23-05-2023 Sunday 26-05-2024 => Sunday 28-05-2023 Friday 31-05-2024 => Friday 02-06-2023 Wednesday 05-06-2024 => Wednesday 07-06-2023 Monday 10-06-2024 => Monday 12-06-2023 Saturday 15-06-2024 => Saturday 17-06-2023 Thursday 20-06-2024 => Thursday 22-06-2023 Tuesday 25-06-2024 => Tuesday 27-06-2023 Sunday 30-06-2024 => Sunday 02-07-2023 Friday 05-07-2024 => Friday 07-07-2023

preferences:
287.08 ms | 406 KiB | 385 Q