【问题标题】:Compare two dates in PHP pulled from SQL database比较从 SQL 数据库中提取的 PHP 中的两个日期
【发布时间】:2012-07-31 15:15:04
【问题描述】:

我知道 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 小时?

【问题讨论】:

    标签: php sql date


    【解决方案1】:

    这段代码非常适合我,用你的变量更新:

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

    这将返回时间间隔,以分钟为单位。将数学添加到您想要的任何格式。

    假设您以分钟为单位保持间隔结果,您会这样做:

    if($interval >= 120) {...}
    

    【讨论】:

    • 你为什么用strtotime(date("Y-m-d H:i:s"))而不是time()?不需要输出格式化的日期然后解析它......虽然它被放入 MySQL 的格式。
    • 我还没有尝试使用 time() - 我昨天需要这个小 sn-p,我想我会发布。我想它应该与 time() 一起工作得很好。 OP,让我们知道!
    【解决方案2】:

    请考虑使用 PHP 的日期/时间对象。文档可以找到here

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多