将时间戳与数据库中的当前时间进行比较

Jos*_*the 24 php

我需要针对数据库中的日期时间测试当前时间,如果已经30分钟则执行代码,如果不是则不执行.这就是我所处的地方,我被困住了:

$link = mysqli_connect("hostname", "username", "password", "database");
$q = "SELECT id FROM dwCache ORDER BY id DESC LIMIT 1";
$qu = mysqli_query($link, $q);

while($row=mysqli_fetch_array($qu, MYSQL_ASSOC)){
        $id = $row['id'];
        $cache = $row['cache'];
        $timest = $row['time'];
    }

$newTime = 
$difference = $timest
if($timest >= )
Run Code Online (Sandbox Code Playgroud)

你可以看到底部我失去了它,因为我不知道该怎么做.

$timest返回:2013-02-01 12:36:01作为格式Y-m-d h-i-s

双重道歉,其他删除.

San*_*hra 45

首先转换$timest为时间戳

$time = strtotime($timest);

$curtime = time();

if(($curtime-$time) > 1800) {     //1800 seconds
  //do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 秒,但所有这些多次转换日期都是浪费时间/资源,因为您可以在查询中完成所有操作,只需返回您需要处理的 ID 列表。 (3认同)

Dav*_*ave 12

在sql语句中完成所有操作

SELECT id FROM `dqCache` WHERE `time`<DATE_SUB(NOW(), INTERVAL 30 MINUTE);
Run Code Online (Sandbox Code Playgroud)

这将返回表中时间列之前30分钟之前的所有内容.