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

时间:2013-10-22 21:03:01

标签: php date datetime laravel laravel-4

$datetime = new DateTime('today');
$datetime->modify('+2 day');

$expired_tags = DB::table('tags')
        ->where('active', '=', 1)
        ->where('expiry_date', '=', $datetime)
        ->get();

我正在试着理解我的问题:

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

2 个答案:

答案 0 :(得分:4)

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

$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的所有记录! :)

答案 1 :(得分:2)

$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();
相关问题