【问题标题】:Calculate Difference between two dates as a signed value计算两个日期之间的差异作为有符号值
【发布时间】:2023-03-22 05:51:01
【问题描述】:

正在构建一个 web 应用程序,管理员需要知道申请人的注册期限已过期。所以我需要将当前日期与我从数据库中获取的过期日期进行比较。我尝试使用函数 date_diff(),但是 date_diff() 的问题是,如果我有一个日期,例如 2014-02-31 作为我的到期日期,并且我有 2014-03-01,那么现在这一天超过了到期日期:所以申请已经过期。但是当日期同样大于或小于时,函数似乎返回相同的值。

这是我的功能

function CheckStatus($date)
{
    $date1 = new DateTime(date('Y-m-d'));
    $date2 = new DateTime($date);

    $interval = $date1->diff($date2);

    return $interval->format('%a');
}

我只是想知道今天的日期是否大于到期日期,以便知道我知道申请人已经到期。

如有任何帮助,我们将不胜感激。 在此先感谢

刚刚在 php doc 上得到了这个例子:

function CheckStatus($date)
{
//if expiry date is less than todays date
//then enrollee expired
    $date1 = new DateTime(date('Y-m-d'));
    $date2 = new DateTime($date);

    if($date1 > $date2)
    {
        echo '<span class="label-default label label-danger">expired</span>';
    }
    if($date1 < $date2)
    {
        echo '<span class="label-default label label-info">Running</span>';
    }
}

有没有人认为我会遇到任何问题?也许以后

【问题讨论】:

    标签: php


    【解决方案1】:

    date_diff 采用关键字参数“绝对”。将此设置为 false 以获得您正在寻找的结果。

    注意 date_diff 和 $date->diff 是同一个函数的别名!

    编辑:为方便起见,链接到文档:http://php.net/manual/en/datetime.diff.php

    【讨论】:

      【解决方案2】:
      // assuming $date is a valid date string
      function isExpired($date) {
          return time() > strtotime($date);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 2021-11-25
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多