拉拉维尔:试图只比较简单的日期,而不是小时、分钟和秒


Laravel: Trying to compare only the simple date, not hours minutes and seconds

$datetime = new DateTime('today');
$datetime->modify('+2 day');
$expired_tags = DB::table('tags')
        ->where('active', '=', 1)
        ->where('expiry_date', '=', $datetime)
        ->get();

试图理解我该怎么问:

给我所有两天后就过期的标签。但以上似乎将小时、分钟和秒考虑在内......我只需要询问年,月,日并比较两个日期的这一方面。

好的,所以我想出了一个做我想做的事的好方法......

$starting_time = new DateTime('today');
$starting_time->modify('+1 day');
$ending_time = new DateTime('today');
$ending_time->modify('+1 day +23 hours +59 minutes +59 seconds');
$expired_tags = DB::table('tags')
        ->where('active', '=', 1)
        ->whereBetween('expiry_date', array($starting_time, $ending_time))
        ->get();

这将在下一个日历日的任何时间抓取所有有datetime的记录! :)

$today = new DateTime('today');
$expired_tags = DB::table('tags')
        ->where('active', '=', 1)
        ->where('expiry_date', '>=', $today->modify('+1 day')->format('Y-m-d'))
        ->where('expiry_date', '<',  $today->modify('+1 day')->format('Y-m-d'))
        ->get();