PHP - 检查日期是过去但排除今天的日期

时间:2018-03-15 16:54:20

标签: php strtotime

我使用以下功能检查日期是否已过去,但我想从今天的日期中排除日期,因为它在今天的日期也会返回true。

例如,如果我今天通过2018-03-15日期,则在不应该的时候返回true。

function is_date_in_past($date):bool
{
   return !empty($date) && (strtotime($date) < time());
}

有人可以帮助我解决这个问题,即如何将今天的日期排除在过去的日期之外?

提前致谢。

2 个答案:

答案 0 :(得分:5)

使用DateTime个对象。它们比旧date & time functions更容易使用,代码更清晰。

function is_date_in_past($date) {
    return new DateTime($date) < new DateTime("today");
}

答案 1 :(得分:1)

如果您想使用旧日期/时间功能,可以这样做:

 function is_date_in_past(string $date) :bool
 {
     return !empty($date) && strtotime($date) < strtotime(date('Y-m-d'));
 }

但最好考虑使用https://stackoverflow.com/a/49305230/9254020变体