通过 moment diff 获取经过的分钟数

Get the minutes that have elapsed through moment diff

我正在尝试获取两个时间戳之间的分钟差值

我有一个看起来像这样开头的时间戳

'15:44:06'

当我想找到经过的时间时,我创建了一个新的时刻时间戳

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

哪个returns这个

'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 Whosebug

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

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

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

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

timestamp.diff(moment());

然后,可以使用 .asMinutes()(第一个)将给定的数字转换为分钟

有关更多信息,您应该阅读官方文档 here

这个问题有点老了,这个答案只是用问题正在寻找的解决方案来更新状态:

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

根据有关 diff 的文档 和 display duration in minutes

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

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