针对MySQL DATETIME戳记的时间比较检查

时间:2011-01-04 02:07:35

标签: php mysql

我想检查自MySQL上一个datetime标记以来是否已经过了一个小时。我怎么能用PHP做到这一点?

6 个答案:

答案 0 :(得分:3)

你可以而且可能应该在mysql中做这整件事

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

您可以使用查询找到日期时间字段与当前时间之间的差异,并将结果作为一行返回。

答案 1 :(得分:2)

最简单的方法是在MySQL中使用DATE_SUB(或DATE_ADD,具体取决于您的目标)。例如:

SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR)

同样,您可以将“1 HOUR”替换为“1 DAY”或“1 MINUTE”之类的其他内容,依此类推。我总是喜欢在数据库级别进行日期比较,因为可能日期是以通用格式和GMT偏移量存储的。

答案 2 :(得分:0)

这个link解释了关于PHP> = 5.3的date_diff,有些解决了旧版本的解决方案。

答案 3 :(得分:0)

$db_time = strtotime($row->timestamp_col);
$age = 60 * 60;
if ($db_time < (time() - $age)) {
    doSomething();
}

这是不必要的分解,因此您可以看到它是如何工作的。

答案 4 :(得分:0)

$now = time();

$dbDate = strtotime($row['datetime']);

if ($now > $dbDate + 3600) {
   // yes
}

答案 5 :(得分:0)

您将支票放入查询中。然后你可以使用MySQL日期比较,PHP不必知道或关心。