在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();
关当然,您需要更改日期。