在 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)
我需要将数据库中的日期与当前日期进行比较。这是我的代码,在 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)