3v4l.org

run code in 300+ PHP versions simultaneously
<?php date_default_timezone_set('America/New_York'); //DST starts Apr. 2nd 02:00 and moves to 03:00 $start = new \DateTime('2006-04-02T01:00:00'); $end = new \DateTime('2006-04-02T04:00:00'); while($end > $start) { $now = clone $end; $end->sub(new \DateInterval('PT1H')); echo $end->format('Y-m-d H:i T') . PHP_EOL; if ($now == $end) { break; //remove this will result in an endless loop } } echo '-----' . \PHP_EOL; //DST ends Oct. 29th 02:00 and moves to 01:00 $start = new \DateTime('2006-10-29T00:30:00'); $end = new \DateTime('2006-10-29T03:00:00'); $i = 0; while($end > $start) { $now = clone $start; $start->add(new \DateInterval('PT30M')); echo $start->format('Y-m-d H:i T') . PHP_EOL; if ($i++ > 7) { break; //remove this will result in an endless loop } }

preferences:
26.45 ms | 404 KiB | 5 Q