我得到了H:i:s格式的奇怪时间间隔,如下所示:
$interval1 = 12:15:33;
$interval2 = 0:36:10;
$interval3 = 0:1:30;
现在我想将所有这些间隔加在一起,如
$total = $interval1 + $interval2 + $interval3;
这是我的PHP代码
function addinterval($x,$y){
$x = explode(':', $x);
$y = explode(':', $y);
$seconds = $minit = $hours = 0;
$seconds = $x[2] + $y[2];
if($seconds > 60){
$seconds = $seconds - 60;
$minit = $minit + 1;
}
$minit = $minit + $x[1] + $y[1];
if($minit > 60){
$minit = $minit - 60;
$hours = $hours + 1;
}
$hours = $hours + $x[0] + $y[0];
return $hours. ':' . $mint . ':' . $seconds;
}
$first = addinterval('12:15:33','0:36:10');
echo 'The result :' . $first;
$second = addinterval($first, '0:1:30');
echo 'The final result' . $second;
答案 0 :(得分:3)
使用strtotime()
。
$interval1 = "12:15:33";
$interval2 = "0:36:10";
$interval3 = "0:1:30";
$interval2Sec = strtotime($interval2)-strtotime("00:00:00");
$interval3Sec = strtotime($interval3)-strtotime("00:00:00");
$total = strtotime($interval1) + $interval2Sec + $interval3Sec;
echo $time =date("Y-m-d h:i:s", $total);
<强>输出强>
2016-04-18 12:53:13
在线演示:Click Here
答案 1 :(得分:1)
function getSeconds($interval)
{
list($h, $m, $s) = explode(':', $interval);
return $h * 3600 + $m * 60 + $s;
}
echo date('Y-m-d H:i:s', strtotime(date('Y-m-d 00:00:00')) + getSeconds($interval1) + getSeconds($interval2) + getSeconds($interval3));
如果间隔时间超过一个当天,那将会很好。
答案 2 :(得分:0)
最好的方法是使用strtotime将它们转换为时间戳,然后再一起添加:
$o = strtotime($interval1)+strtotime($interval2)+strtotime($interval3);