3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start = new DateTimeImmutable('2019-01-01 13:00:00'); $end = new DateTimeImmutable('2019-01-01 14:30:01'); //NOTE 30:01 $interval = new DateInterval('PT1H'); foreach(new DatePeriod($start, $interval, $end) as $date) { echo $date->format('r') . \PHP_EOL; //NOTE: 00:00 and not 30:01 } echo \PHP_EOL; echo 'Sanitized:' . PHP_EOL; $startState = $start->setTime($start->format('H'), 0); $endState = $end->setTime($end->format('H'), 0); foreach(new DatePeriod($startState, $interval, $endState) as $date) { echo $date->format('r') . \PHP_EOL; }
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Tue, 01 Jan 2019 13:00:00 +0100 Tue, 01 Jan 2019 14:00:00 +0100 Sanitized: Tue, 01 Jan 2019 13:00:00 +0100
Output for 7.3.32 - 7.3.33, 8.0.13
Tue, 01 Jan 2019 13:00:00 +0000 Tue, 01 Jan 2019 14:00:00 +0000 Sanitized: Tue, 01 Jan 2019 13:00:00 +0000

preferences:
201.27 ms | 402 KiB | 210 Q