2010-10-06 38 views
0

基本上我有一個變量,它包含一個時間值,格式爲'00:04:13.67'。我需要一個簡短的PHP函數將其轉換爲秒。如何將時間格式爲'00:04:13.67'轉換爲秒?

我最終要做的是獲得使用ffmpeg存儲在亞馬遜雲端的視頻的持續時間,但ffmpeg會以不需要的格式返回持續時間「hours:minutes:seconds.decimals」我需要幾秒鐘的時間。

,這裏是我的代碼,如果有任何一個簡單的或清潔的解決方案我會非常感激

$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

嘗試在標題中總結您的問題; 「簡單的PHP問題」不會讓人們知道期望什麼。 – meagar 2010-10-06 16:01:16

回答

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是你的時間字符串。這應該給你秒(如浮動)。如果你願意的話,把它包裝在一個函數中。

+0

'$ secs =(int)substr($ timeStr,6,2)+ $ mins * 60;'多數民衆贊成在我所需要的感謝 – dlaurent86 2010-10-06 16:17:35

+1

在電影和視頻時間碼中,小數點右邊的數字是幀,而不是百分之一秒。 – Blrfl 2010-10-06 16:36:44

相關問題