3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start = new DateTimeImmutable("2019-01-01 00:00:00"); $end1 = new DateTimeImmutable("2019-02-01 00:00:00"); $end2 = new DateTimeImmutable("2019-02-01 12:00:00"); $diff1 = $start->diff($end1); $diff2 = $start->diff($end2); // Compare all of the things $diff1s = intervalToSecs($diff1); $diff2s = intervalToSecs($diff2); var_dump($diff1s); var_dump($diff2s); var_dump($diff1s == $diff2s); // false, as it should be var_dump($diff1s < $diff2s); // true, as it should be var_dump($diff1s > $diff2s); // false, as it should be function intervalToSecs(DateInterval $interval): int { $secs = $interval->s; $secs += ($interval->i * 60); $secs += ($interval->h * 60 * 60); $secs += ($interval->days * 60 * 60 * 24); return $secs; }
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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
int(2678400) int(2721600) bool(false) bool(true) bool(false)

preferences:
93.32 ms | 407 KiB | 5 Q