我想检查自MySQL上一个datetime
标记以来是否已经过了一个小时。我怎么能用PHP做到这一点?
答案 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不必知道或关心。