我知道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
}
如何才能更好地比较这两个日期,看看是否超过2小时?
答案 0 :(得分:4)
此代码适用于我,使用您的变量进行更新:
$interval = (strtotime(date("Y-m-d H:i:s")) - strtotime($lastcache) ) / 60;
这将返回时间间隔,以分钟为单位。添加数学以格式化为您想要的任何格式。
假设您将间隔结果保留为几分钟,您只需执行以下操作:
if($interval >= 120) {...}
答案 1 :(得分:-1)
请考虑使用PHP的日期/时间对象。可以找到文档here