2016-12-21 17 views
2

どのように私はPHPで一定の時間を追加できますか?PHPで時間を追加

time1: "00:02:00" 
time2: "00:15:00" 
time3: "00:08:00" 

これは、それを達成しようとする中で、私のアプローチでした:

echo date('h:i:s', strtotime('00:02:00') + strtotime('00:15:00') + strtotime('00:08:00')); 

私のコードの結果は、12:25:00ある

以下

は、私が追加したい3つの時間変数です期待される結果は00:25:00であったはずです。

私は間違っていますが、どのようにして特定の時間変数をPHPに効果的に追加できますか?

答えて

4

hからHに変更してください。先行ゼロ時間の

H => 24時間形式の時間の

h => 12時間形式の先行ゼロと

echo date('H:i:s', strtotime('00:02:00') + strtotime('00:15:00') + strtotime('00:08:00')); 

Reference

+0

理解していない、これは私が使用するのと同じコードです。 。それは間違った結果を得る – user2673664

+0

@ user2673664私は私の答えを更新しました。 – Hassaan

+0

おそらく、あなたはこの回答を投稿する前に得た結果を見て、strtotimeがその式に日付を付けてunixのタイムスタンプを与えることを思い出してください。 –

0
を試します

私はPHPで時間を処理するいくつかの問題がありました。

これは私が今までに見つけた最良の方法です(計算が24時間経過しても問題が発生しなくても)。

<?php 

function time_to_sec($time) { 
list($h, $m, $s) = explode (":", $time); 
$seconds = 0; 
$seconds += (intval($h) * 3600); 
$seconds += (intval($m) * 60); 
$seconds += (intval($s)); 
return $seconds; 
} 
function sec_to_time($sec) { 
return sprintf('%02d:%02d:%02d', floor($sec/3600), floor($sec/60 % 60), floor($sec % 60)); 
} 

$time1 = time_to_sec("00:02:00"); 
$time2 = time_to_sec("00:15:00"); 
$time3 = time_to_sec("00:08:00"); 

$total = $time1 + $time2 + $time3; 
var_dump(sec_to_time($total)); 
?> 

は私が助けたと思っています。

0

このように使用できます。それが動作します。

$arr = [ 
    '00:02:00', 
    '00:15:00', 
    '00:08:00' 
    ]; 
    $hour =0;$min=0;$sec=0; 
    foreach($arr as $a){ 
     $time = explode(':',$a); 
     $sec +=$time[2]; 
     $min +=$time[1]; 
     $hour += $time[0]; 
    } 
    echo sprintf('%02d',$hour).':'.sprintf('%02d',$min).':'.sprintf('%02d',$sec); 

おかげで、

0

このone.Thisは、あなたが探しているものを行う必要があります試してみてください。

<?php 
/** 
* @param array $times 
* @return string 
*/ 
function sumOfDiffrentTime($times = array()) 
{ 
    $minutes = ''; 
    $seconds = ''; 
    // loop through all the times array 
    foreach ($times as $time) { 
     list($hour, $minute, $second) = explode(':', $time); 
     $minutes += $hour * 60; 
     $minutes += $minute; 
     $seconds += (intval($second)); 
    } 
    $hours = floor($minutes/60); 
    $minutes -= $hours * 60; 

    // returns the formatted time 
    return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds); 
} 

$times = array(); 

$times[] = "00:02:00"; 
$times[] = "00:15:00"; 
$times[] = "00:08:00"; 

// pass your $times array to the function 
echo sumOfDiffrentTime($times); 

LIVE DEMO

関連する問題