3v4l.org

run code in 300+ PHP versions simultaneously
<?php $ordinalHolidays = [ 'thanksgiving' => 'fourth Thursday of November', 'blackfriday' => 'fourth Thursday of November + 1 day' ]; $startDate = new \DateTimeImmutable('2016-04-20'); $periods = new \DatePeriod($startDate, new \DateInterval('P1Y'), 5); foreach ($periods as $date) { echo 'Holidays for ' . $date->format('Y') . \PHP_EOL; foreach ($ordinalHolidays as $holiday => $ordinalHoliday) { $holidayDate = $date->modify($ordinalHoliday); echo $holiday . ' is ' . $holidayDate->format('Y-m-d') . \PHP_EOL; } echo \PHP_EOL; }
Output for 7.1.25 - 7.1.28, 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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Holidays for 2016 thanksgiving is 2016-11-24 blackfriday is 2016-11-25 Holidays for 2017 thanksgiving is 2017-11-23 blackfriday is 2017-11-24 Holidays for 2018 thanksgiving is 2018-11-22 blackfriday is 2018-11-23 Holidays for 2019 thanksgiving is 2019-11-28 blackfriday is 2019-11-29 Holidays for 2020 thanksgiving is 2020-11-26 blackfriday is 2020-11-27 Holidays for 2021 thanksgiving is 2021-11-25 blackfriday is 2021-11-26

preferences:
101.51 ms | 1527 KiB | 4 Q