如何在PHP中检查DateTime差异是否超过阈值


How to check if DateTime difference exceeds a threshold in PHP?

$dt1 = new DateTime($myObject['ModifyTime']);
$dtNow = new DateTime();
$timeDifference = date_diff($dt1,$dtNow);

我需要检查DateTime dt1是否比现在早>300分钟。我怎么才能确认呢?

你也可以只在时间戳上这样做:

<?php
$dt1 = new DateTime($myObject['ModifyTime']);
$now = time();
var_dump($now - $dt1->getTimestamp() >= 300 * 60); // should return true
?>

时间戳以秒为单位(从1970-01-01开始)。300分钟等于300 x 60秒

时间戳之间的差异以秒为单位,因此只需将其除以60(分钟),以此类推

$datetime1 = new DateTime('2014-03-12 11:00');
$datetime2 = new DateTime('2014-03-12 16:00');
// difference in seconds
$interval = datetime2->getTimestamp() - $datetime1->getTimestamp();
// difference in minutes
$interval = interval / 60;
// difference in hours
$interval = interval / (60 * 60);

检查时间差是否大于5小时:

$dt1 = new DateTime($myObject['ModifyTime']);
$dtNow = new DateTime();
$timeDifference = date_diff($dt1,$dtNow);
if ($timeDifference->h > 5) {
  // greater than 300 minutes
}

实际操作

有关日期间隔格式的更多信息,请参阅DatInterval::format()