在 php 中比较两个日期的正确方法是什么?

What's the right way to compare two dates in php?

我需要将数据库中的日期与当前日期进行比较。这是我的代码,在 eloquent:

$posts = Post::where('date', '=', date('Y-m-d'))->get();

我只想检索今天的帖子。 知道 'date' 字段是 Date 类型,我该怎么做呢? 我尝试使用 'format' 方法将 date('Y-m-d') 转换为字符串,但似乎 date('Y-m-d') 以某种方式返回布尔值,因此无法应用方法 'format'对它..

我用它来处理我的数据库日期

    //Get the database date, and format it

$database_date = date_format($database_date, 'Y-m-d');

//Get today date or another date of you choice
$today_date = new DateTime();

//Format it
$today_date = date_format($today_date, 'Y-m-d');

// Use strtotime() to compare the dates or DateTime::diff for more cleaner IMO
$difference = strtotime($today_date) - strtotime($database_date);

如果我得到了你想要的,你可以使用strtotime功能。它将传递给它的日期时间字符串转换为可用于比较的 Unix 时间戳。

如果 2015-10-21 的日期那么函数将 return 1445385600 如果今天 date(Y-m-d) 的日期是 2015-10-31 那么函数将 return 1446249600 所以你可以很容易地比较两者。

$var1 = strtotime('2015-10-21');

$var2 = strtotime('2015-10-31');

那么可以比较为if($var1 == $var2)