2013-08-24 85 views
1

我正試圖找到將秒轉換爲時間格式的很好解決方案。將秒轉換爲時間格式

我有這個功能,這對我的需求到目前爲止工作得很好。

function secondstotime(secs) 
{ 
    var t = new Date(1970,0,1); 
    t.setSeconds(secs); 
    var s = t.toTimeString().substr(0,8); 
    if(secs > 86399) 
     s = Math.floor((t - Date.parse("1/1/70"))/3600000) + s.substr(2); 
    return s; 
} 

alert(secondstotime(1920)); 

所以,你可以在的jsfiddle http://jsfiddle.net/7Pp5z/

運行此所以這偉大工程,工程等個小時,但我期待到零地帶到的時間的左側。以例子

我想0時32分00秒

變成32:00,所以它看起來更好,當輸出到瀏覽器的方式

有人能告訴我這樣做或做的最好辦法任何人都有可能分享的另一個功能。

謝謝

+1

相對於什麼秒? – stackunderflow

回答

2

把下面的條件:

if(s.substr(0, 2) == 00) 
     return s.substr(3); 

工作演示http://jsfiddle.net/7Pp5z/2/

+0

這個問題是不斷變化的時間不是一個集數我需要它動態地工作說http://jsfiddle.net/7Pp5z/3/ – user1503606

+0

對不起阿肖克你的工作感謝這裏是一個更新的版本http:// jsfiddle。 net/7Pp5z/4 /謝謝;) – user1503606

0

首先你應該更清楚地陳述你的問題。

「將秒轉換爲時間格式」 秒是表示持續時間的一種方式,但需要某種參考才能使其相關。

A.D.,UTC或持續時間。

請參閱 http://en.wikipedia.org/wiki/ISO_8601 爲贏。

在JavaScript控制檯試試這個:

d = new Date(1920000) 
Thu Jan 01 1970 01:32:00 GMT+0100 (Westeuropäische Normalzeit) 
d.getUTCMinutes() 
32 
d.getUTCSeconds() 
0 
+0

對不起,我有一個腳本,不斷更新在幾秒鐘內,我需要將其轉換爲可讀的時間格式,無需額外的零任何一方輸出到瀏覽器。 – user1503606

+0

我的觀點是:你並不需要你和響應者不斷做出的所有不好的代碼越來越模糊。 正如我所說的,您可以基於毫秒值直接構造Date對象。 然後,您可以使用其各種getUTC ...方法來避免特定於語言環境的時區問題。 我唯一遺漏的是填充和其他格式標記。 – stackunderflow

0

這裏有一個函數來顯示從要求的格式的時間字符串給定秒數[s]:

function showtime(s){ 
    var time = new Date(new Date('1970/1/1 00:00').setSeconds(s)) 
       .toTimeString().split(' ')[0].split(':'); 
    return (+time[0] ? time[0]+':' : '') + 
      (+time[1] || +time[0] ? time[1] +':' : '') + 
      time[2]; 
} 

您可以在此jsFiddle中找到演示。