将一个月的时间戳之和相加

时间:2019-05-22 09:55:58

标签: php laravel

想总结用户的日常工作时间,而我在时间栏中有时间进行签入和签出

$sql=" SELECT User_id, date, min(time) AS checkedin, max(time) AS checkedout,( (TIME_TO_SEC(TIMEDIFF(max(time), min(time))) / 60) / 60) difference
            FROM profile WHERE 1 GROUP BY User_id, date";
            $previousdata = DB::select($sql);

我从使用过的sql查询中获得了这个数组,我想添加一个月的数据我每天得到的差值。 不用担心日期格式,我来自尼泊尔,正在使用尼泊尔日期。

Array
(
    [0] => stdClass Object
        (
            [User_id] => 1
            [date] => 2076-02-06
            [checkedin] => 12:11:40
            [checkedout] => 19:11:43
            [difference] => 7.00083333
        )

    [1] => stdClass Object
        (
            [User_id] => 1
            [date] => 2076-02-08
            [checkedin] => 12:15:40
            [checkedout] => 15:15:48
            [difference] => 3.00222222
        )

)

2 个答案:

答案 0 :(得分:0)

您可以使用

array_sum(array_column($arr,'difference'));

获取总工作时间。

正在工作demo

答案 1 :(得分:0)

如果要通过查询进行操作,请使用rollup

SELECT User_id, date, min(time) AS checkedin, max(time) AS checkedout,( (TIME_TO_SEC(TIMEDIFF(max(time), min(time))) / 60) / 60) difference
FROM profile WHERE 1 GROUP BY User_id, date WITH ROLLUP";

但是它将在每组之后添加其他行以显示它们的总和,并在结果集的底部添加一个总和。