我是nodeJs的新手,在我的项目中使用了moment.js。我想计算导致小时分钟和秒的日期时间差异。我用谷歌搜索,但没有相关的解决方案。
这是代码和我在谷歌上的努力。
var moment = require('moment');
var now = "26/02/2014 10:31:30";
var then = "25/02/2014 10:20:30";
var config = "DD/MM/YYYY HH:mm:ss";
var duration = moment.utc(moment(now, config).diff(moment(then,config))).format("HH:mm:ss");
console.log(duration);
这会打印00:11:00
预期结果为23:11:00
任何帮助将不胜感激,并提前感谢。
答案 0 :(得分:1)
您必须添加:
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
输出:24:11:00
由于您的时差大于24小时,因此重置为零。从那里它给你剩余的11:00分钟。因此输出00:11:00。
var moment = require('moment');
var now = "26/02/2014 10:31:30";
var then = "25/02/2014 10:20:30";
var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
console.log(s);
答案 1 :(得分:0)
如下面的链接和我的评论中所述,您的格式将在24小时内变为00:11:00
格式。
https://stackoverflow.com/a/18624295/2903169
现在我已经检查了这个并提供了以下答案的片段。
var moment = require('moment');
var now = "26/02/2014 10:31:30";
var then = "25/02/2014 10:20:30";
var config = "DD/MM/YYYY HH:mm:ss";
var ms = moment(now, config).diff(moment(then,config));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
console.log(s) // will log "24:11:00"
道具Matt Johnson提供答案