从Mysql数据库时间戳Laravel中仅选择当前星期的记录

use*_*305 4 php mysql date laravel eloquent

我只想获取本周星期一至星期五的记录,但是我很难思考和研究如何做,我在互联网上找到了一些方法,但是对于新手来说很难理解像我一样,这是我的代码:

         $myquery=DB::table('attendances')
        ->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
        ->where('user_id', '=', $employee->id)

        //I want to do something like this one
         ->WHERE WEEK(`date`) = WEEK(NOW()  

        ->orderBy('attendances.date','asc')->get();
Run Code Online (Sandbox Code Playgroud)

我实现了一些这样的答案

         $myquery=DB::table('attendances')
        ->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
        ->where("WEEKOFYEAR(`date`)", "=", "WEEKOFYEAR(NOW())")
        ->where('user_id', '=', $employee->id)
        ->orderBy('attendances.logon','asc')->get();
Run Code Online (Sandbox Code Playgroud)

Jos*_*ber 5

您可以将a whereBetween与两个Carbon日期实例一起使用:

->whereBetween('date', [
    Carbon\Carbon::parse('last monday')->startOfDay(),
    Carbon\Carbon::parse('next friday')->endOfDay(),
])
Run Code Online (Sandbox Code Playgroud)

如果要查找当月的所有记录,请使用以下命令:

->whereBetween('date', [
    Carbon\Carbon::now()->startOfMonth(),
    Carbon\Carbon::now()->endOfMonth(),
])
Run Code Online (Sandbox Code Playgroud)