请问下如何用moment将两个时间点的差用HH:mm:ss表示出来

你好,请问下如何用moment将两个时间点的差用HH:mm:ss表示出来,例如7月1日0点0分0秒距离7月3日12点0分0秒是60个小时,应为60:00:00。万分感谢

阅读 7.3k
3 个回答
var a = moment([2017, 7, 1]);
var b = moment([2017, 7, 3, 12]);
var duration = moment.duration(b.diff(a));
var m = {
    hours: `${parseInt(duration.asHours(), 10)}`,
    minutes: `${parseInt(duration.asMinutes()) % 60}`,
    seconds: `${parseInt(duration.asSeconds()) % 60}`,
    toString: function() {
        let m = `00${this.minutes}`.substr(this.minutes.length);
        let s = `00${this.seconds}`.substr(this.seconds.length);
        return `${this.hours}:${m}:${s}`;
    }
};

console.log(m.toString());

clipboard.png

补充:再来个简化点的版本

var a = moment([2017, 7, 1]);
var b = moment([2017, 7, 3, 12]);
var duration = moment.duration(b.diff(a));
var s = `${duration.asHours()}:${moment([2000, 1, 1]).add(duration).format("mm:ss")}`;
console.log(s);

var d1 = moment('2018-12-13 14:00:00');
var d2 = moment('2018-12-14 15:23:00');
console.log(d1);
console.log(d2);
console.log(d2.diff(d1, 'minute'));

const duration = moment.duration(moment(endedAt).diff(moment(startedAt)));
const str = `${duration.hours()}:${duration.minutes()}:${duration.seconds()}`
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏