1

私はPHPにまったく慣れていないので、PHPで合計時間と分を実装するのに助けが必要です。

私はPHPで時間、分、秒の配列を持っています

(array) Array
(
    [0] => 01:10:00
    [1] => 01:20:30
    [2] => 00:00:10
)

私の予想される出力は、時間、分、秒の合計時間である必要があります(例:2:30:40)

4

3 に答える 3

0
$hours;
$minutes;
$seconds;

foreach( $thatArray as $v )
{
  $subArray = explode(':', $v);

  $hours   += $subArray[0];
  $minutes += $subArray[1];
  $seconds += $subArray[2];
}

// output $hours / $minutes / $seconds, correctly formatting, etc
于 2012-04-08T03:08:35.307 に答える
0

あなたにコードを与えるつもりはありません。方法は次のとおりです。

を使用して時間の個々のコンポーネントを取得しますexplode()

秒を追加することから始めます。結果が 60 より大きい場合は、分を増やします。

于 2012-04-08T03:09:24.330 に答える
0

おそらく最も簡単な方法は、それらすべてを秒表現に変換し、それらを合計して、元に戻すことです。例えば:

function timeToSeconds($time) {
    $parts = explode(':', $time);

    return $parts[0] * 3600 + $parts[1] * 60 + $parts[2];
}

function secondsToTime($seconds) {
    $hours = floor($seconds / 3600);
    $minutes = floor($seconds / 60) % 60;
    $seconds %= 60;

    return str_pad($hours, 2, '0', STR_PAD_LEFT) . ':' . str_pad($minutes, 2, '0', STR_PAD_LEFT) . ':' . str_pad($seconds, 2, '0', STR_PAD_LEFT);
}

$times = array('01:10:00', '01:20:30', '00:00:10');
$total = secondsToTime(array_sum(array_map('timeToSeconds', $times)));

これがデモです。

于 2012-04-08T03:10:41.223 に答える