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

时间:2014-03-12 11:48:37

标签: php datetime

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

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

3 个答案:

答案 0 :(得分:0)

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

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

See it in action

有关DateInterval格式化的详细信息,请参阅DatInterval::format()

答案 1 :(得分:0)

你完全可以在时间戳上做到这一点:

<?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秒。

答案 2 :(得分:0)

时间戳之间的差异以秒为单位,因此只需将其除以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);