我正在尝试做这样的事情:
if (datetime - system date > 15 minutes) (false)
if (datetime - system date <= 15 minutes) (true)
但我完全迷路了。我不知道如何在 PHP 中进行此操作。
我想看看如何从我的数据库中选择日期时间并检查它是否在我服务器时间的最后 15 分钟之间。
数据库类型为MySQL。
最后,感谢 Sammitch 和其他人,我设法做到了,这里我留下片段:
$now = time();
$target = strtotime($row[1]);
$diff = $now - $target;
// 15 minutes = 15*60 seconds = 900
if ($diff <= 900) {
$seconds = $diff;
} else {
$seconds = $diff;
}
最佳答案
如果您的日期已经在 MySQL 中,您将需要在查询中进行比较,因为:
- MySQL 有适当的 DATE 类型。
- MySQL 有用于比较的索引。
- MySQL 执行比较的速度比 PHP 快得多。
- 如果您在查询中过滤数据,那么将多余数据传输回应用程序所花费的时间就会更少,或者根本不会花费时间。
下面是最有效的形式。如果 date
列上有索引,将使用它。
SELECT *
FROM table
WHERE date > DATE_SUB(NOW(), INTERVAL 15 MINUTE)
文档:DATE_SUB()
如果您需要在 PHP 中执行此操作:
$now = time();
$target = strtotime($date_from_db);
$diff = $now - $target;
if ( $diff > 900 ) {
// something
}
或者,更简洁:
if( time() - strtotime($date_from_db) > 900 ) {
// something
}
关于php - 日期时间比较 PHP/Mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23813201/