2010-10-06 8 views
0

fondamentalement j'ai une variable qui contient une valeur de temps, dans ce format '00: 04: 13.67 '. J'ai besoin d'une fonction php courte et simple pour convertir cela en secondes. Ce que je suis finalement à faire est d'obtenir la durée des vidéos que j'ai stockées sur un front de cloud amazon en utilisant ffmpeg, mais ffmpeg renvoie la durée dans un format indésirable "heures: minutes: secondes.décimales" j'ai besoin de temps en secondes .Comment convertir l'heure au format '00: 04: 13.67 'en secondes?

voici mon code si tout a une solution plus simple ou plus propre, je vous en serais reconnaissant très bien

$videofile="http://123abc.cloudfront.net/test.flv"; 
ob_start(); 
passthru("/usr/bin/ffmpeg -i \"{$videofile}\" 2>&1"); 
$duration = ob_get_contents(); 
ob_end_clean(); 

$duration=preg_match('/Duration: (.*?),/', $duration, $matches, PREG_OFFSET_CAPTURE, 3); 
//TEST ECHO 
echo $matches[1][0]; 
+0

Essayez de résumer votre question dans le titre; "Simple question PHP" ne laisse pas les gens savoir à quoi s'attendre. – meagar

Répondre

2
<?php 
$hours = (int) substr($timeStr, 0, 2); 
$mins = (int) substr($timeStr, 3, 2) + $hours * 60; 
$secs = (int) substr($timeStr, 6, 2) + $mins * 60; 
$secs += ((int) substr($timeStr, 9, 2))/100; 
?> 

$timeStr est votre chaîne de temps. Cela devrait vous donner quelques secondes (comme flotteur). Enveloppez-vous dans une fonction si vous voulez.

+0

'$ secs = (int) substr ($ timeStr, 6, 2) + $ mins * 60;' Thats ce dont j'avais besoin Merci – dlaurent86

+1

Dans les codes temporels film et vidéo, le nombre à droite de la virgule décimale est des images, pas des centièmes de seconde. – Blrfl

Questions connexes