Ral*_*sho 4 php mysql datetime date difference
我有一个问题,我试图做出类似的东西:
if(datetime - 系统日期> 15分钟)(false)
if(datetime - 系统日期<= 15分钟)(true)
但我完全输了.我不知道如何在PHP中进行操作.
我问我是否可以从我的数据库中选择该日期时间并检查该日期时间是否在我服务器的最后15分钟之间,我的数据库是Mysql.
希望你能理解我!谢谢!
最后,我要感谢Sammitch和其他人,在这里我留下片段:
$now = time();
$target = strtotime($row[1]);
$diff = $now - $target;
//15 minuts 15*60 = 900
if ($diff <= 900) {
$seconds = $diff;
} else {
$seconds = $diff;
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*tch 20
如果您的日期已经在MySQL中,您将需要在查询中进行比较,因为:
以下是最有效的表格.如果date列上有索引,则将使用它.
SELECT *
FROM table
WHERE date > DATE_SUB(NOW(), INTERVAL 15 MINUTE)
Run Code Online (Sandbox Code Playgroud)
文档: DATE_SUB()
如果您需要在PHP中执行此操作:
$now = time();
$target = strtotime($date_from_db);
$diff = $now - $target;
if ( $diff > 900 ) {
// something
}
Run Code Online (Sandbox Code Playgroud)
或者,更简洁:
if( time() - strtotime($date_from_db) > 900 ) {
// something
}
Run Code Online (Sandbox Code Playgroud)
最高效的 PHP/MySQL 组合解决方案是:
$date = date('Y-m-d H:i:s', strtotime('-15 minutes'));
$data = $pdo->query("SELECT date_field > '$date' as expired from table")->fetchAll(PDO::FETCH_COLUMN);
foreach($data as $expired) {
if (!$expired) {
// Still Valid
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25365 次 |
| 最近记录: |