PHP,将gmdate添加到gmdate

时间:2018-08-11 17:22:03

标签: php

我有一个看起来像这样的代码:

        $dagtidhelg = gmdate('H:i', $diffMorning) . "\n";
        $kvallstidhelg = gmdate('H:i', $diffNight);

此代码自从mysql每次加载一行以来,每页运行几次。 它可以返回一个时间值,即08:15和09:30。这是两个工作会议的长度。

那很好,但是现在我停滞了,我想在底部显示每个工作会议的总数。我已经尝试过了:

        $dagtidhelgtotal = $dagtidhelgtotal + $dagtidhelg;
        $kvalltidhelgtotal = $kvalltidhelgtotal + $kvallstidhelg;

但这只会增加小时数,甚至不会显示: 所以我猜测我这样做完全是错误的。

如何将这些时间添加到gheter?也许将它们转换为分钟数,然后将其全部添加到togheter?

1 个答案:

答案 0 :(得分:0)

将持续时间加在一起很简单。但是必须记住,持续时间和日期是完全不同的两件事。您可以为持续时间写100:08,但不能写日期。如果您的目的是在每个页面上保持持续时间计数器,则需要基于$_SESSION变量构建系统。 要添加两个duree,您可以像这样进行操作:

function addDuration($duration1,$duration2){

        $result=array_map(function($x,$y){return sprintf("%'.02d", $x+$y);},explode(':',$duration1),explode(':',$duration2));
        if($result[1]>60){
            $result[0]=sprintf("%'.02d",$result[0]+(int)$result[1]/60);
            $result[1]=sprintf("%'.02d",$result[1]%60);
        }elseif($result[1]==60){
            $result[1]="00";
            $result[0]=sprintf("%'.02d",$result[0]+1);
        }
        return  join(':',$result);
}

,您的情况下的用法可能是:

 $dagtidhelgtotal = addDuration($dagtidhelgtotal,$dagtidhelg);

如果我们认为

$dagtidhelgtotal ==='100:09' && $dagtidhelg === '08:08'

然后添加   $dagtidhelgtotal将等于'108:17';