在laravel的两个日期之间检索数据

问题描述:

我正在使用雄辩查询从表中检索数据。该表列如下所示:在laravel的两个日期之间检索数据

id started_at finished_at 
1 2016-06-01 2016-06-30 
2 2016-05-03 2016-05-28 

我想要做的是,给定一个$date(例如:2016年6月18日),并获得该行的数据,这之间的$date开始在和finished_at列。

我在Laravel documentation中发现了whereBetween条款,但我没有办法正确使用它。

如果你可以使用碳,那么这段代码对我来说工作正常。

$dateS = new Carbon('first day of January 2016'); 
$dateE = new Carbon('first day of November 2016'); 
$result = ModelName::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get(); 

或者,您可以通过使用DB::enableQueryLog();调试查询来检查这个问题,并DB::getQueryLog();功能,如

DB::enableQueryLog(); 
$dateS = new Carbon('first day of January 2016'); 
$dateE = new Carbon('first day of November 2016'); 
$result = ModelName::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get(); 
var_dump($result, DB::getQueryLog()); 

尝试做这样的事情:

$date1 = Carbon::today()->toDateString(); 
$date2 = Carbon::today()->toDateString(); 

$myModel = MyModel::find(1); 
$myModel->whereBetween('created_at', [$date1, $date2]); 
$myModel->get(); 

关当然,您需要更改日期。