如何对 laravel 中日期相同的时间求和

how to sum times in where dates are same in laravel

我正在尝试构建一个时间跟踪器,其中有一个 'time_tracks' table。员工可以在一天内多次跟踪时间。现在我想对 'total_time' 求和,其中 'track_date' 相同。请有人帮我找出预期的结果!这是我的 'trackForToday' 功能如下 -

public function trackForToday()
{
    $user_id = Auth::user()->id;

    $last_date = TimeTrack::where('employee_id', $user_id)->select('track_date')->orderBy('track_date', 'DESC')->first();
    $last_work_time = TimeTrack::where('employee_id', $user_id)->where('track_date', $last_date->track_date)->get();

    return view('employee.time-tracker.today');
}

这是我的 'time_tracks' table-

使用 sum() 收集方法,并且由于您使用 time type 作为列类型(似乎),您可能需要 convert 到几秒后再求和。

$total_time = TimeTrack::where('employee_id', $user_id)->where('track_date', $last_date->track_date)->sum(DB::raw("TIME_TO_SEC(total_time)"));

获取特定曲目日期的数据-

$track_date = '2018-03-01';
$total_time = TimeTrack::where('track_date', $track_date)->sum(DB::raw("TIME_TO_SEC(total_time)"));

最后到show,你需要convert回到time format,见thislink

The sum method returns the sum of all items in the collection. If the collection contains nested arrays or objects, you should pass a key to use for determining which values to sum.