Level 1
Up
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I have this code:
$day=Tms::where('users_id',$request->user)->whereBetween('day', [$request->first, $request->last])->get();
$user_time_in=Tms::where('users_id',$request->user)->where('day', $request->first)->value('time_in');
$user_time_out=Tms::where('users_id',$request->user)->where('day',$request->last)->value('time_out');
if($user_time_in==null){
$first= new DateTime($request->first.' 00:00:00');
}else{
$first= new DateTime($request->first.$user_time_in);
}
if($user_time_out==null){
// dd($request->last.' 00:00:00');
$last= new DateTime($request->last.' 00:00:00');
}else{
$last = new DateTime($request->last.$user_time_out);
}
$totalDiff=$last->diff($first);
$total=$totalDiff->format('%H hours and %I minutes');
return view('home.admin.tms.calculated_hours')->with(['day'=>$day,'totalHR'=>$total, 'user'=>$users]);
this is my CURRENT result:
//example scenario "this is from user request"
Date 01
Total hours: 10 hours and 3 minutes
Date 02
Total hours: 0 hours and 4 minutes
Date 03
Total hours: 0 hours and 0 minutes
//current result i use variable $date here
Covered Dates:
Date 01
Date 02
Date 03
//here is the computed hours from the selected date ranges
Total hours: 22 hours and 55 minutes
this is my EXPECTED result computing the total hours of every date then sum all values:
//example scenario "this is from user request"
Date 01
Total hours: 10 hours and 3 minutes
Date 02
Total hours: 0 hours and 4 minutes
Date 03
Total hours: 0 hours and 0 minutes
//expected result I use variable $date here
Covered Dates:
Date 01
Date 02
Date 03
//here is the computed hours from the selected date ranges
Total hours: 10 hours and 7 minutes
I think im missing the logic about computing the time in and time out of every dates then add all values
my solution here is add total hours in database that will be computed when the time out triggers then in by selecting date range I use
$day=Tms::where('users_id',$request->user)->whereBetween('day', [$request->first, $request->last])->get();
$users=Tms::where('users_id', $request->user)->take(1)->get();
$user_time_in=Tms::where('users_id',$request->user)->where('day', $request->first)->value('time_in');
$user_time_out=Tms::where('users_id',$request->user)->where('day',$request->last)->value('time_out');
if($user_time_in==null){
$first= new DateTime($request->first.' 00:00:00');
}else{
$first= new DateTime($request->first.$user_time_in);
}
if($user_time_out==null){
// dd($request->last.' 00:00:00');
$last= new DateTime($request->last.' 00:00:00');
}else{
$last = new DateTime($request->last.$user_time_out);
}
$totalDiff=$last->diff($first);
$total=$totalDiff->format('%H hours and %I minutes');
return view('home.admin.tms.calculated_hours')->with(['day'=>$day,'totalHR'=>$total, 'user'=>$users]);
}
return back()->with('message', 'User Not Recorded');
Please or to participate in this conversation.