0

我刚刚意识到,当我验证代码时,它始终显示有效,即使到期日期已过。有人可以看到我做错了什么。

就是不明白...

{
    $status = "<p8>ERROR</p8>";
    $entity_name = $rowa['entity_name'];
    $cert_no = $rowa['cert_no'];
    $issue_num = $rowa['issue_num'];
    $level = $rowa['level'];
    //$issue_date = $rowa['issue_date'];
    $issue_date = date("d-m-Y", strtotime($rowa['issue_date']));
    //$expiry_date = $rowa['expiry_date'];
    $expiry_date = date("d-m-Y", strtotime($rowa['expiry_date']));
    //$status = $rowa['status'];
    $date_time = date("d-m-Y");
    if($date_time < $expiry_date)
    {
        $status = "<p8>Valid</p8>";
    }
    else
    {
        $status = "<p9>In-Valid</p9>";
    }
}
4

2 回答 2

1

通过使用date,您将日期转换为字符串 - 因为您使用的是'd-m-y'格式,所以它们不会以您认为的方式进行比较。

一个快速而肮脏的解决方案是反转格式并使用'Ymd'它将以格式返回它们,就像20130905将用作字符串比较一样,但更好的方法是以实际的日期时间格式或时间戳通过类似的东西创建它们mktime(0, 0, 0, $month, $day, $year);

于 2013-09-05T10:00:13.710 回答
1

转换日期以在 unixtime 中与 mktime 进行比较

于 2013-09-05T10:04:18.203 回答