Javascript 节点js中的Datetime差异(以小时、分钟和秒为单位)矩.js
我不熟悉nodeJs,在我的项目中使用moment.js。我想计算datetime差异,以小时分和秒为单位。我在谷歌上搜索了一下,但没有找到相关的解决方案 这是我在谷歌上的代码和努力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
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为我工作您应该接受答案作为解决方案并关闭问题