检查日期是多于还是小于或等于当前日期

时间:2016-07-02 06:21:24

标签: php date laravel-5.2

我现在只是对如何使用php完美地比较日期感到困惑。我已将当前日期与到期日期进行比较,并使用红色突出显示小于当前日期的日期。但是,它表明2016年7月2日大于2016年8月22日这是错误的。它在12月份进行比较也不起作用。这有什么问题?请帮忙。非常感谢。这是我的代码。

 $currDate = date('F j, Y'); //July 2, 2016

<?php 
 if($currDate > date("F j, Y", strtotime($val->purchases->expiry_date_month))){ ?>
 <td style="color:#fff; text-align:center;background-color:#C00;">{{ date("F j, Y", strtotime($val->purchases->expiry_date_month)) }}</td>
<?php }

输出:

enter image description here

2 个答案:

答案 0 :(得分:2)

问题是您正在比较字符串,并且您使用的字符串表示不按时间顺序排序:“July”&gt; “八月”。

如果要格式化输出日期,请使用date()。对于比较日期,如果使用字母顺序对应于日期顺序的格式(例如“Y-m-d”),则可能不太有用。但是你仍然在比较字符串。比较时间戳更有效,时间戳是数字:

$currDate = time();

$expiry = strtotime($val->purchases->expiry_date_month);
if($currDate > $expiry) { ?>
    <td style="color:#fff; text-align:center;background-color:#C00;">
        {{ date("F j, Y", $expiry) }}
    </td>
<?php }

答案 1 :(得分:0)

我只是将此行$currDate = date('F j, Y');更改为$currDate = date('Y-m-d');