我现在只是对如何使用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 }
输出:
答案 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');