I want to get only the records from monday to friday of the current week, but i'm having a hard time thinking and researching ways on how to do it, I found some ways on the internet but its so hard to understand for a newbie like me, so here is my code:
$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();
I implement some of the answers like this
$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();
You can use a whereBetween
with two Carbon
date instances:
->whereBetween('date', [
Carbon\Carbon::parse('last monday')->startOfDay(),
Carbon\Carbon::parse('next friday')->endOfDay(),
])
If you want to find all record in the current month, use this:
->whereBetween('date', [
Carbon\Carbon::now()->startOfMonth(),
Carbon\Carbon::now()->endOfMonth(),
])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With