2010-01-11 5 views
2

J'ai une liste de durées de segments vidéo que j'ai besoin d'additionner pour obtenir la durée totale.PHP Ajouter une série de minutes: secondes

La série est comme ceci:

  • 0:33
  • 4:30
  • 6:03
  • 2:10

... etc

Je dois additionner les minutes et les secondes pour obtenir une durée totale de la vidéo.


est ici la fonction modifiée de ma réponse acceptée:

function getTotalDuration ($durations) { 
    $total = 0; 
    foreach ($durations as $duration) { 
     $duration = explode(':',$duration); 
     $total += $duration[0] * 60; 
     $total += $duration[1]; 
    } 
    $mins = floor($total/60); 
    $secs = str_pad ($total % 60, '2', '0', STR_PAD_LEFT); 
    return $mins.':'.$secs; 
} 

la sortie semble juste que fait correcte.

+0

bien, faites-le. Non sérieusement, qu'est-ce que tu as eu jusqu'ici? Une idée de comment vous allez faire ça? C'est vraiment trivial. Vous obtiendrez plus de réponses ici si vous montrez ce que vous avez jusqu'ici. –

+0

Dans quel format les avez-vous? Avez-vous quelque chose comme $ h = 0, $ m = 33 pour le premier? Ou une chaîne "0:33"? –

+0

une chaîne, exactement comme montré ci-dessus. – Ian

Répondre

6

Donnez ce code un coup:

function getTotalDuration ($durations) { 
    $total = 0; 
    foreach ($durations as $duration) { 
     $duration = explode(':',$duration); 
     $total += $duration[0] * 60; 
     $total += $duration[1]; 
    } 
    $mins = $total/60; 
    $secs = $total % 60; 
    return $mins.':'.$secs; 
} 
+0

Merci, j'ai ajouté quelques choses pour améliorer la sortie, comme indiqué dans ma question éditée ci-dessus. – Ian

1

Convertir tous les temps en secondes, les ajouter comme entiers, convertir la somme en minutes et secondes?

2

Cette stocke le résultat dans $seconds:

$seconds = 0; 
foreach ($times as $time): 
    list($m,$s) = explode(':',$time); 
    $seconds += $s + 60*$m; 
endforeach; 
Questions connexes