比较从SQL数据库提取的PHP中的两个日期

Nic*_*ick 1 php sql date

我知道有很多关于Stack Overflow的示例,这些示例如何在PHP中比较两个日期,但是我无法使我的代码正常工作。

目前,我有两个日期,即缓存日期和命中日期。我正在尝试设置它,如果缓存日期距命中日期已超过2小时,它将重新缓存新信息。我目前有以下格式的日期存储在MySQL中:$lastcache = date("m.d.y G:i");

我当前的代码仅工作大约一半的时间(多数是出于某种原因在第二天)是这样的:

$lastcache = $row['lastcache'];
$expiredate = date("m.d.y G:i", strtotime("-120 minutes"));

if( $expiredate > $lastcache){
    cache($input);      
}else{
    //do cool stuff
}
Run Code Online (Sandbox Code Playgroud)

如何更好地比较这两个日期以查看是否已超过2小时?

Dan*_*eri 5

这段代码对我来说非常有效,并使用您的变量进行了更新:

$interval = (strtotime(date("Y-m-d H:i:s")) - strtotime($lastcache) ) / 60;
Run Code Online (Sandbox Code Playgroud)

这将返回时间间隔,以分钟为单位。添加数学以格式化为所需的任何格式。

假设您将间隔结果保持为分钟,则只需执行以下操作:

if($interval >= 120) {...}
Run Code Online (Sandbox Code Playgroud)