簡體   English   中英

Moment.js添加多個日期之間的差異

[英]Moment.js adding difference between multiple dates

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

$('.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

});

可能為時已晚,但是這樣的事情可能會有所幫助:

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

tl; dr一旦有了差異:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM