Laravel 5.4:如何从本周获得记录?

ano*_*nym 0 laravel laravel-5.4

为了获取当天的所有记录,我做了

$dt = Carbon::now();
$dataToday = Data::whereDay('created_at', $dt->day)->get();
Run Code Online (Sandbox Code Playgroud)

为了获得本周的记录,我尝试了以下操作,但没有成功。

$dataThisWeek = Data::where('created_at', $dt->weekOfYear);
$dataThisWeek = Data::where('created_at', $dt->weekOfMonth);
$dataThisWeek = Data::whereWeek('created_at', $dt->week);
Run Code Online (Sandbox Code Playgroud)

我们如何通过Eloquent和Carbon(最好)或本机MYSQL函数来实现这一目标?

小智 6

你也可以试试

$dataThisWeek = Data::where(\DB::raw("WEEKOFYEAR(created_at)"), $dt->weekOfYear)->get();
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

Data::whereBetween('created_at', [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()])->get();
Run Code Online (Sandbox Code Playgroud)

设置星期开始/结束:

Carbon::setWeekStartsAt(Carbon::SUNDAY);
Carbon::setWeekEndsAt(Carbon::SATURDAY);
Run Code Online (Sandbox Code Playgroud)