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

标签 javascript date momentjs

我使用以下代码来获取两个日期之间的差异(以小时、分钟和秒为单位),稍后我会将其作为字符串字段保存在数据库中。所以我想知道是否可以使用 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;博士 一旦你有了差异:

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

关于javascript - Moment.js 添加多个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27254799/

相关文章:

javascript - 根据周数获取星期几

javascript - 如何在 Moment 中将数字格式化为时间?

javascript - Angular 选项选择显示隐藏 Angular 重复

javascript - 从 Gulp 生成的 Sourcemap,没有按预期工作

python - python中两个日期范围之间的重叠日期

mysql - 每列显示每个 date_sub 的值

javascript - jQuery 验证插件错误摘要

javascript - MongoDB:如何在 100 个集合中找到 10 个随机文档?

mysql - 获取mysql中上个月的日期

javascript - 将秒转换为 hh :mm:ss