2016-01-29 51 views
1

我有一個基本的表格,它可以捕捉所有工作人員的登錄和註銷信息。Laravel時差總和

我正在使用laravel作爲我的後端,我正在努力如何獲得現場總小時數。

ID | in_time | out_time | in_date | out_date 
1 | 21:22:49 | 21:46:05 | 2016-01-28 | 2016-01-28 
2 | 08:12:12 | 14:12:01 | 2016-01-28 | 2016-01-28 

見我的查詢到目前爲止

$date1 = '2015-01-28'; 
$date2 = '2015-01-28'; 

$attendancehours = DB::table('staff_attendances')->whereBetween('in_date', array($date1, $date2))->where('id', $sID) 
     ->get(); 

我怎麼會在現場爲日期範圍總產量小時?

+2

不是你的問題的答案,但它可能是有趣的,你知道Laravel帶有[碳](http://carbon.nesbot.com/docs/),其唯一目的是格式化日期和通常使他們更容易合作。 – Fester

回答

1

兩種方式去了解這是

  1. 採用碳看到的這樣的例子Difference

    大量的文件在其網站上

  2. 你使用MySQL使用假設timestampdiff

    SELECT TIMESTAMPDIFF(HOUR,'2003-02-01','2003-05-01 12:05:55');

    您可以像

    $attendancehours = DB::select(
        DB::RAW('TIMESTAMPDIFF(HOUR,CONCAT(in_date," ",in_time),CONCAT(out_date," ",out_time)'))-> 
        table('staff_attendances')-> 
        whereBetween('in_date', array($date1, $date2))-> 
        where('id', $sID) 
        ->get(); 
    

警告在Laravel東西RAW查詢做到這一點:我沒有測試以上,但應該工作。