Javascript 节点js中的Datetime差异(以小时、分钟和秒为单位)矩.js

Javascript 节点js中的Datetime差异(以小时、分钟和秒为单位)矩.js,javascript,node.js,momentjs,Javascript,Node.js,Momentjs,我不熟悉nodeJs,在我的项目中使用moment.js。我想计算datetime差异,以小时分和秒为单位。我在谷歌上搜索了一下,但没有找到相关的解决方案 这是我在谷歌上的代码和努力 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 = mome

我不熟悉nodeJs,在我的项目中使用moment.js。我想计算datetime差异,以小时分和秒为单位。我在谷歌上搜索了一下,但没有找到相关的解决方案

这是我在谷歌上的代码和努力

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

如有任何帮助,我们将不胜感激

您必须添加:

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

如以下链接和我的评论中所述,您的格式将在24小时以上归零为
00:11:00
格式

现在我刚刚检查了这个问题,并提供了下面答案的一个片段

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"

提供答案的道具

我遇到的问题是,
now
then
的格式没有正确设置为momentjs的最新版本。我相信你是在试图倒算(从现在到过去)。但是,此时将返回
当时
现在
之间的时差-这相当于
24:11:00
谢谢Matt Johnson为我工作您应该接受答案作为解决方案并关闭问题