2013-12-16 22 views
2

我有兩次,讓說:差(HH:MM:SS)

t1= '05:34:01' ; 
t2= '20:44:44' ; 

我想要兩個評估相同的格式這兩個時間之間的區別。像上面的結果必須作爲

t3= t2 - t1; // 15:10:43 

這是幹什麼的?

+0

這個問題可能會幫助你:http://stackoverflow.com/questions/1968167 /日期在JavaScript中的差異 – doptimusprime

回答

8

如果您需要處理時間,強烈建議您在項目中包含moment.js

例子:

var t1 = moment('05:34:01', "hh:mm:ss"); 
var t2 = moment('20:44:44', "hh:mm:ss"); 
var t3 = moment(t2.diff(t1)).format("hh:mm:ss"); 

工作jsFiddle

Node.js安裝moment.js,簡單地做:

npm install moment(或全球安裝sudo npm -g install moment

然後在你的Node.js,像這樣包含它:

var moment = require('moment'); 

編輯:對於24h時鐘,將hh更改爲HH

+0

哦..我注意到,我得到的差異是12小時格式。我實際上需要24小時格式,就像我在我的問題中提到的。我想要回答像15:10:43,但它回來了03:10:43。你能建議如何獲得所需的輸出。 –

+0

簡單地使用'HH'而不是'hh' –

+0

@brandonscript,當我演奏小提琴時(JFYI,我在東京),我獲得了'12:10:43'的價值。它與UTC有關嗎?如果是,我們如何解決它?請建議。 – VicJordan

4

我也會去的moment.js,但你可以這樣做:

function time_diff(t1, t2) { 
    var parts = t1.split(':'); 
    var d1 = new Date(0, 0, 0, parts[0], parts[1], parts[2]); 
    parts = t2.split(':'); 
    var d2 = new Date(new Date(0, 0, 0, parts[0], parts[1], parts[2]) - d1); 
    // this would also work 
    // d2.toTimeString().substr(0, d2.toTimeString().indexOf(' ')); 
    return (d2.getHours() + ':' + d2.getMinutes() + ':' + d2.getSeconds()); 
} 
1

試試這個

function time_diff(t1, t2) 
{ 
    var t1parts = t1.split(':');  
    var t1cm=Number(t1parts[0])*60+Number(t1parts[1]); 

    var t2parts = t2.split(':');  
    var t2cm=Number(t2parts[0])*60+Number(t2parts[1]); 

    var hour =Math.floor((t1cm-t2cm)/60);  
    var min=Math.floor((t1cm-t2cm)%60);  
    return (hour+':'+min+':00'); 
} 

time_diff("02:23:00","00:45:00") 
0

我也用momentjsduration和答對不同時間之間:

var t1 = moment('05:34:01', "HH:mm:ss"); 
var t2 = moment('20:44:44', "HH:mm:ss"); 

var start_date = moment(t1, 'YYYY-MM-DD HH:mm:ss'); 
var end_date = moment(t2, 'YYYY-MM-DD HH:mm:ss'); 
var duration = moment.duration(end_date.diff(t1)); 

var t3 = duration.hours() + ":" + duration.minutes() + ":" + duration.seconds(); 
alert(t3); 
console.log(duration.hours()); 
console.log(duration.minutes()); 
console.log(duration.seconds()); 
相關問題