3v4l.org

run code in 300+ PHP versions simultaneously
<?php $begin_date = '2019-12-30'; $date = new DateTime($begin_date); $original_date = clone $date; for ($i = 1; $i <= 5; $i++) { echo '<p>'.$date->format("Y-m-d")."</p>\n"; $date->modify("last day of next month"); if ($date->format("d") > $original_date->format("d")) { $date->modify("-".($date->format("d") - $original_date->format("d"))." day"); } }
Output for 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.29, 8.2.0 - 8.2.23, 8.3.0 - 8.3.11
<p>2019-12-30</p> <p>2020-01-30</p> <p>2020-02-29</p> <p>2020-03-30</p> <p>2020-04-30</p>

preferences:
40.97 ms | 407 KiB | 5 Q