Date 如何使用Laravel5.2从MYSQL数据库表中获取时间总和

Date 如何使用Laravel5.2从MYSQL数据库表中获取时间总和,date,laravel-5,Date,Laravel 5,我有一个名为total_work_hours的专栏,它是登录时间和注销时间/天之间的差值。我需要计算一周或从界面发送的日期之间的总工作时间。我怎样才能让它工作呢 这是我的密码: 控制器: public function search(request $request) { $search= DB::table('attendance')->orderBy('Id', 'desc')->where('user',$request->id)->whereBetween

我有一个名为total_work_hours的专栏,它是登录时间和注销时间/天之间的差值。我需要计算一周或从界面发送的日期之间的总工作时间。我怎样才能让它工作呢

这是我的密码:

控制器:

public function search(request $request)
{
    $search= DB::table('attendance')->orderBy('Id', 'desc')->where('user',$request->id)->whereBetween('Date', [$request->Fdate, $request->Tdate])->get();

    return Response::json(array(
        'results' => $search,
        'pdays' => sizeof($search),
    ));
}
public function getAttencance(){
    $data=DB::table('users')->where('Type',"E")->get();
    return view('admin.attendanceSummary')->with('data',$data);
}
现在我只发送包含行数的完整结果。连同它,我需要发送总工作时间。我的其他细节如下

路线:

Route::post('search',['as'=>'search','uses'=>'Admin\AdminController@search']);
Route::get('viewAttendance',['as' => 'viewAttendance','uses' =>'Admin\AdminController@getAttencance']);
前端:

    @extends('layouts.mainPage')

@section('content')
  <Style>
     .help-inline {
         color: red;
         font-weight: 700;
     }
  </Style>


  <script type="text/javascript">
    $(document).ready(function () {
        $( "#Fdate" ).datepicker({ dateFormat: "yy-mm-dd" });
        $( "#Tdate" ).datepicker({ dateFormat: "yy-mm-dd" });
        $('#b-summary').DataTable();

        $("#menu-toggle").click(function(e) {
          e.preventDefault();
          $("#wrapper").toggleClass("toggled");
        });
    });
    function search() {
      var Fdate=$('#Fdate').val();
      var Tdate=$('#Tdate').val();
      if(Fdate =='' || Tdate == '')
      {
        if(Fdate == '' && Tdate != '')
        {
             $('#spanFro').removeClass('hidden');
             $('#spanTo').addClass('hidden');
         }else if(Tdate == '' && Fdate != '')
         {
             $('#spanTo').removeClass('hidden');
             $('#spanFro').addClass('hidden');
         }
         else {
             $('#spanFro').removeClass('hidden');
             $('#spanTo').removeClass('hidden');
         }

      }
      else {
       $('#spanFro').addClass('hidden');
       $('#spanTo').addClass('hidden');
       var id = $("#sel1").val();

       var postdata = {};
       postdata['id'] = id;
       postdata['Fdate'] = $('#Fdate').val();
       postdata['Tdate'] = $('#Tdate').val();
       postdata["_token"] = $('input[name=_token]').val();

       $.ajax({
           url: 'search',
           type: "post",
           data: postdata,
           success: function (data) {
               //success
               $('#pDay').val(data.pdays);
               var t = $('#b-summary').DataTable();
               var total_work_hrs=null;

               /*for (var i = 0; i < data.results.length; i++) {
                   total_work_hrs =[data.results[i].WorkTime];
                 }*/
               t.clear().draw();
               for (var i = 0; i < data.results.length; i++) {
                   var row =
                           [
                               dateFormat(data.results[i].Date, "yyyy-mm-dd"),
                               dateFormat(data.results[i].InTime, "h:MM"),
                               dateFormat(data.results[i].OutTime, "h:MM"),
                               data.results[i].InIP,
                               data.results[i].OutIP,
                               data.results[i].TotalBreaks,
                               data.results[i].WorkTime
                           ];
                   var r = t.row.add(row).draw(false);
                   if (r) {
                       $(r.node()).data("row", data.results[i]);
                   }
               }

           },
          error: function (data) {
               //failur logic
          }
        })
      }
    }
  </script>

    <div id="page-content-wrapper">
      <div class="container-fluid">
        <div class="row" style="margin-top: 70px;">
          <div class="col-lg-12">
            <div class="cover-head">
              <h1>Employees Details</h1>
            </div>
            <div class="panel panel-default">
              <div class="panel-heading">Filter Attendance</div>
              <div class="panel-body">
                <input type="hidden" id="_token" name="_token" value="{{ csrf_token() }}">
                <div class="form-group col-sm-4">
                  <label for="sel1">Emplayee list:</label>
                  <select class="form-control " id="sel1">
                      @if(sizeof($data)!=0)
                          @foreach($data as $row)
                          <option value="{{$row->id}}">{{$row->FirstName}}{{$row->LastName}}</option>
                          @endforeach
                      @endif
                  </select>
                </div>
                <div class="form-group  col-sm-3">
                  <label for="Fdate">From Date:</label>
                  <input type="text" class="form-control" required placeholder="From date" id="Fdate">
                  <span class="help-inline hidden" id="spanFro">Please Enter From Date</span>
                </div>
                <div class="form-group  col-sm-3">
                  <label for="Tdate">To Date:</label>
                  <input type="text" class="form-control" required id="Tdate" placeholder="To date">
                  <span class="help-inline hidden" id="spanTo">Please Enter To date</span>
                </div>
                <button class="btn btn-success" id="search" onclick="search();" style="margin-top: 24px;">Search</button>
              </div>
            </div>

            <div class="panel panel-default">
              <div class="col-lg-4">Days Present:
                <input class="form-control col-lg-4" type="text" name="presentDays" readonly placeholder="Present days" id="pDay">
              </div>
              <div class="table-responsive panel-body">
                <table id='b-summary' class="table table-bordered">
                    <thead>
                      <tr>
                        <th>Login Date</br> [ Y-M-D ]</th>
                        <th>Login Time</br> [ Hrs:Min ]</th>
                        <th>Logout Time</br> [ Hrs:Min ]</th>
                        <th>Logged In From</th>
                        <th>Logged Out From</th>
                        <th>Total Breaks</th>
                        <th>Total Work Time</th>
                      </tr>
                    </thead>
                    <tbody>

                    </tbody>
                  </table>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
@extends('layouts.mainPage'))
@节(“内容”)
.联机帮助{
颜色:红色;
字号:700;
}
$(文档).ready(函数(){
$(“#Fdate”).datepicker({dateFormat:“yy-mm-dd”});
$(“#Tdate”).datepicker({dateFormat:“yy-mm-dd”});
$(“#b-摘要”).DataTable();
$(“#菜单切换”)。单击(功能(e){
e、 预防默认值();
$(“#包装器”).toggleClass(“toggled”);
});
});
函数搜索(){
var Fdate=$('#Fdate').val();
var Tdate=$('#Tdate').val();
如果(Fdate=''| | Tdate='')
{
如果(Fdate=''&&Tdate!='')
{
$('#spanFro')。removeClass('hidden');
$('#spanTo').addClass('hidden');
}else if(Tdate=''&&Fdate!='')
{
$('#spanTo')。removeClass('hidden');
$('#spanFro').addClass('hidden');
}
否则{
$('#spanFro')。removeClass('hidden');
$('#spanTo')。removeClass('hidden');
}
}
否则{
$('#spanFro').addClass('hidden');
$('#spanTo').addClass('hidden');
var id=$(“#sel1”).val();
var postdata={};
postdata['id']=id;
postdata['Fdate']=$('#Fdate').val();
postdata['Tdate']=$('#Tdate').val();
postdata[“_-token”]=$('input[name=_-token]')。val();
$.ajax({
url:'搜索',
类型:“post”,
数据:postdata,
成功:功能(数据){
//成功
$('pDay').val(data.pdays);
var t=$(“#b-摘要”).DataTable();
var总工时=null;
/*对于(var i=0;iFirstName}{{$row->LastName}
@endforeach
@恩迪夫
自日期起:
请输入起始日期
迄今为止:
请输入截止日期
搜寻
至今天数:
登录日期
[Y-M-D] 登录时间
[小时:分钟] 注销时间
[小时:分钟] 从登录 从注销 总休息时间 总工作时间

@endsection

对您的表格布局的描述将非常有助于回答此问题。表格:考勤列:Id int(11)AI PK、用户int(11)、日期日期、InTime datetime、OutTime datetime、InIP varchar(15)、OutIP varchar(15),TotalBreaks int(34)、工作时间、BreakFlag int(11)、备注varchar(60)