获取经过时差的分钟数

时间:2015-09-28 19:55:42

标签: momentjs duration difference

我试图在两个时间戳之间获得分钟差异

我有一个以

开头的时间戳
'15:44:06'

当我想找到时间过去时,我会创建一个新时刻时间戳

var currentTimestamp = Moment(new Date()).format('HH:mm:ss');

返回此

'15:42:09'

然后我尝试得到差异

var duration = Moment.duration(Moment(currentTimestamp,'HH:mm:ss').diff(Moment(userTimestamp,'HH:mm:ss')));

然后尝试在几分钟内完成它

var elapsedTime = duration().asMinutes();
console.log(elapsedTime);

但是在我登录时的控制台中我收到此错误

var elapsedTime = duration().asMinutes();
                  ^
TypeError: object is not a function

我从this stackoverflow

获得了大部分代码

3 个答案:

答案 0 :(得分:13)

你可以通过正确使用矩构造函数来获得差异。

首先,初始化时间戳时,应使用以下格式:

var timestamp = moment('15:44:06','HH:mm:ss');

其次,当你想使用当前时间的diff函数时,你应该像这样使用它:

timestamp.diff(moment());

然后,可以使用.asMinutes()(第一个)

将给定数字转换为分钟

如需了解更多信息,请阅读官方文档here

答案 1 :(得分:3)

这个问题变得有点老了,这个答案只是让状态更新了问题所寻求的解决方案:

const startDate = moment();
...
elapsedDuration = moment.duration(moment().diff(startDate));
//in minutes
elapseDuration.asMinutes();

根据diff的文档  和display duration in minutes

答案 2 :(得分:3)

您也可以尝试使用最新的时刻.js

var start = moment('15:44:06','HH:mm:ss');
var minutesPassed = moment().diff(start, 'minutes');