简体   繁体   English

Moment.js添加多个日期之间的差异

[英]Moment.js adding difference between multiple dates

I am using the following code to get difference between two dates in hrs, minutes and seconds, which I will save later in database as a string field. 我正在使用以下代码来获取小时,分钟和秒这两个日期之间的差异,稍后将其保存为字符串字段。 So I was wondering if it is possible to use Moment.js library or any Javascript functionally in order to get the total number of hours, minutes and seconds for all date differences saved in the database (ex. 02:24:33 + 03:12:20 + 12:33:33) as one final HH:MM:SS taking in consideration that the HH could exceed 24 if the total number of hours summed exceeded 24? 因此,我想知道是否可以在功能上使用Moment.js库或任何Javascript来获取数据库中保存的所有日期差异的小时,分​​钟和秒的总数(例如02:24:33 + 03: 12:20 + 12:33:33)作为最后的HH:MM:SS,考虑到如果总小时数超过24小时,HH可能会超过24? Thanks 谢谢

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

});

It's probably too late for this to matter, but maybe something like this would help: 可能为时已晚,但是这样的事情可能会有所帮助:

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

tl;dr once you have your diff: 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