php - 日期时间比较 PHP/Mysql?

标签 php mysql date datetime difference

我正在尝试做这样的事情:

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 中,您将需要在查询中进行比较,因为:

  1. MySQL 有适当的 DATE 类型。
  2. MySQL 有用于比较的索引。
  3. MySQL 执行比较的速度比 PHP 快得多
  4. 如果您在查询中过滤数据,那么将多余数据传输回应用程序所花费的时间就会更少,或者根本不会花费时间。

下面是最有效的形式。如果 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/

相关文章:

php - Contact Form 7 内容因正则表达式而爆炸

javascript - 如何将具有多个对象的 JSON 对象转换为一组对象

MySQL 5.7 和 SELECT DISTINCT JSON 属性

创建 FUNCTION 时出现 MySQL 语法错误

php - MYSQL SELECT 语句用于选择日期期间

javascript - 从下拉列表中选择并使用 php 显示数据库中的详细信息

php - Google Drive API - 未接收推送通知(基本身份验证)

php - 使用 PHP 保存以前的首选项/选择

php - 如何存储和解析 RRULE 数据

sql - 每 2 个月根据不同行的最小(日期)标记列