如何在laravel中的日期相同的时间总和

时间:2018-02-03 07:07:07

标签: php mysql sql laravel laravel-eloquent

我正在努力建立一个时间跟踪器,在那里它有一个时间跟踪器'表。员工可以在一天内多次跟踪时间。现在我想总结一下'total_time'在哪里' track_date'是一样的请有人帮我找出预期的结果!这是我今天的跟踪曲目'功能如下 -

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'表- enter image description here

1 个答案:

答案 0 :(得分:0)

使用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,请参阅this链接。

  

sum方法返回集合中所有项目的总和。如果集合包含nested数组或对象,则应pass a key用于确定要求和的值。