2013-10-21 59 views
0

我已經嘗試使用此功能格式化以毫秒爲單位,但它不是爲我工作:JQuery的 - 格式化毫秒到HH:MM:SS:SSS

var msec_num  = parseInt(duration, 10)/100; 
var hours  = Math.floor(msec_num/3600); 
var minutes  = Math.floor((msec_num - (hours * 3600))/60); 
var seconds  = Math.floor((msec_num - (hours * 3600) - (minutes * 60))/60/1000); 
var milliseconds = (msec_num - ((hours * 3600) - (minutes * 60) - (seconds))/1000) * 100; 

if (hours < 10) {hours = "0"+hours;} 
if (minutes < 10) {minutes = "0"+minutes;} 
if (seconds < 10) {seconds = "0"+seconds;} 
if (milliseconds < 10) {milliseconds = "0"+milliseconds;} 

var time = hours + ":" + minutes + ":" + seconds + ":" + milliseconds; 

,如果我測試使用值(持續時間= 1091ms)它給了我這個:00:00:00:1091 ???

我怎麼知道所有的價值都是完美的?

+0

jquery日期格式化 - 好吧:) –

+0

可能重複[如何將毫秒轉換爲人類可讀形式?](http://stackoverflow.com/questions/175554/how-to-convert-milliseconds-into-human -readable-form) – Zuul

回答

2

使用Moment.js的「duration」可以很容易!

var duration = moment.duration(parseInt(duration, 10)); 
var addZero = function(v) { return (v<10 ? '0' : '') + Math.floor(v); }; 

var time = addZero(duration.hours()) + 
    ':' + addZero(duration.minutes()) + 
    ':' + addZero(duration.seconds()) + 
    ':' + addZero(duration.milliseconds()); 
+0

如何設置2位數的毫秒格式? 類似這樣 - >如果我有192ms比顯示:19 - >如果我有82ms比顯示:08 – kach

+0

Wooow它的作品,我分(duration.milliseconds()/ 10)。 謝謝@Benjamin – kach

2

看起來你有問題100代替1000

var duration = 1091; 
var milliseconds = (duration % 1000); duration = Math.floor(duration/1000); 
var seconds = (duration % 60); duration = Math.floor(duration/60); 
var minutes = (duration % 60); duration = Math.floor(duration/60); 
var hours = duration; 
+0

我看不懂? – kach

+0

@kach 1秒包含1000毫秒 –

+0

你設置了這個嗎? var hours = duration; – kach

1

試試這個 - Moment.js - JavaScript日期庫分析,驗證,操縱和格式化日期。

0

如果我讀Moment.js的文檔,它可以輕鬆很多:

moment(parseInt(duration, 10)).format('h:mm:ss'); 

糾正我,如果我錯了。