2014-12-02 107 views
1

我正在使用以下代碼來獲取hrs,minutes和seconds兩個日期之間的差異,我將稍後將其保存在數據庫中作爲字符串字段。所以我想知道是否可以使用Moment.js庫或任何Javascript功能來獲取數據庫中保存的所有日期差異的總小時數,分鐘數和秒數(例如,02:24:33 + 03: 12:20 + 12:33:33)作爲最後一個HH:MM:SS,考慮到如果小時總數超過24,HH可能會超過24?由於Moment.js添加多個日期之間的差異

$('.set-start-time').on("dp.change",function (e) { 
    $('.set-end-time').data("DateTimePicker").setMinDate(e.date); 
}); 
$('.set-end-time').on("dp.change",function (e) { 
    $('.set-start-time').data("DateTimePicker").setMaxDate(e.date); 

    var now = $('.set-start-time').data('DateTimePicker').getDate().toLocaleString(); 
    var then = $('.set-end-time').data('DateTimePicker').getDate().toLocaleString(); 

    console.log(moment.utc(moment(then,"DD/MM/YYYY HH:mm:ss").diff(moment(now,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")); 
    //Output here come in format ex. 02:42:33 

}); 

回答

1

它可能爲時已晚了這事,但也許這樣的事情會幫助:

http://jsfiddle.net/8s8v3evf/8/

TL;博士 一旦你有你的差異:

function zeroPad(num, places) { 
    var zero = places - num.toString().length + 1; 
    return Array(+(zero > 0 && zero)).join("0") + num; 
} 

function diffAsString(diff_ms) { 
    var hours = Math.floor(diff_ms/3600000); 
    diff_ms -= (hours * 3600000); 

    var minutes = Math.floor(diff_ms/60000); 
    diff_ms -= (minutes * 60000); 

    var seconds = Math.floor(diff_ms/1000); 

    return zeroPad(hours, 2) + ':' + zeroPad(minutes, 2) + ':' + zeroPad(seconds, 2); 
}