2013-04-14 51 views
3

我有一個WEBVTT文件用視頻連接,視頻長度大概是120分鐘。該視頻的縮略圖tooptips每秒運行,這意味着120*60=7200 secs.用PHP循環定時器

如何將7200秒轉換爲WEBVTT format(hh:mm:ss.ttt)與PHP循環功能?例如:

00:00:00.000 --> 00:00:01.000 
00:00:01.000 --> 00:00:02.000 
00:00:02.000 --> 00:00:03.000 
00:00:03.000 --> 00:00:04.000  
and so on...  

謝謝!

+1

我不確定你的問題是否清楚...... – zavg

+0

如果你打算通過PHP更新工具提示,你可能會從錯誤的角度來看待這個問題。 PHP是服務器端的,你需要用Javascript來更新工具提示。 – Fiarr

+0

@ Fiarr nope,我不更新工具提示,我需要在php文件中循環計時器。例如:for($ i = 0; $ i <7200; $ i ++){} – richard

回答

1

使用date()

date_default_timezone_set('UTC'); // To fix some timezone problems 

$start = 0; // 0h 
$end = 7200; // 2h 
$output = ''; 

for($i=$start;$i<$end;$i++){ 
    $output .= date('H:i:s', $i).'.000 --> '.date('H:i:s', $i+1).'.000'.PHP_EOL; 
} 

echo $output; 

注意,如果$限額達到86400它將從0重新開始。

+0

Hi Hamza,結果總是從1小時開始:01:00:00.000 - > 01:00:01.000如何解決這個問題?謝謝。 – richard

+0

@richard設置'$ i'到'3600'或檢查編輯的代碼:) – HamZa

+0

@ Hamza結果從2小時開始:02:00:00.000 - > 02:00:01.000到3小時結束02: 59:59.000 - > 03:00:00.000。任何想法? – richard

1

我不認爲PHP在這裏是正確的工具。聽起來像Javascript可能是你想要的,如果你想在你的屏幕上顯示這個。

對於PHP,你可以使用日期函數

function secondsToWebvtt($seconds) { 
    //set the time to midnight (the actual date part is inconsequential) 
    $time = mktime(0,0,0,1,2,2012); 
    //add the number of seconds 
    $time+= $seconds; 
    //return the time in hh:mm:ss.000 format 
    return date("H:i:s.000",$time); 
} 

使用JavaScript,我會用這樣的函數

var seconds = 0; 
function toTime() { 
    var time = new Date("1/1/2012 0:00:00"); 
    var newSeconds = time.getSeconds() + seconds; 
    var strSeconds = newSeconds + ""; 
    if(strSeconds.length < 2) { strSeconds = "0" + strSeconds; } 
    var hours = time.getHours() + ""; 
    if(hours.length < 2) { hours = "0" + hours; } 
    var minutes = time.getMinutes() + ""; 
    if(minutes.length < 2) { minutes = "0" + minutes; } 
    var dispTime = hours + ":" + minutes + ":" + strSeconds + ".000"; 
    return dispTime; 
    } 

    function getTime() { 
    var time = toTime(seconds); 
    //do something with time here, like displaying on the page somewhere. 
    seconds++; 
    } 

然後用setInterval來調用函數

setInterval("getTime",1000);