使用Laravel 4选择MySQL中时间范围内的记录

时间:2013-09-24 18:40:27

标签: php mysql datetime select laravel

大家好,我有问题,我无法弄明白。我有一个包含几列的数据库。标题,正文,开始和结束。

开始和结束列属于日期时间类型。我的数据库中有行的开始和结束日期。

我正在尝试选择属于日期范围的所有行。在这种情况下,24小时跨度。

例如,如果我的行有一个今天的开始日期(2013年9月24日),结束日期是2014年1月1日,我希望它会被退回。

Route::get('/', function()
{
//Start of Day
$start = date('Y-m-d 00:00:00');

//End of Day    
$end = date('Y-m-d 23:59:59'); 

$data['flyers'] = Flyer::where('start', '>=', $start)->where('end', '<=', $end)->get();

//return homepage
return View::make('view', $data);
});

提前致谢。如果我先弄明白,我会发布我的答案。

1 个答案:

答案 0 :(得分:2)

where()来电的比较运算符是向后的。您的代码现在的方式,您只选择今天开始和结束的传单。你想要的是这个:

$data['flyers'] = Flyer::where('start', '<=', $start)->where('end', '>=', $end)->get();