function assertDateTimeEqual($date_time1, $date_time2, $delta = 1, $msg = null) { $ts1 = (new SimpleDateTime($date_time1))->gmtTimestamp(); $ts2 = (new SimpleDateTime($date_time2))->gmtTimestamp(); if (!$delta instanceof SimpleTimeInterval) { $delta = new SimpleTimeInterval($delta); } $diff = new SimpleTimeInterval(abs($ts1 - $ts2)); $test = $diff->seconds() <= $delta->seconds(); if (is_null($msg) && !$test) { $diff_str = self::build_time_interval_string($diff); $delta_str = self::build_time_interval_string($delta); $msg = "Timestamps should be equal, but differ by {$diff_str} >= " . "{$delta_str} seconds."; } $this->assertTrue($test, $msg); }