获取通过时刻差异经过的分钟数

Get the minutes that have elapsed through moment diff

提问人:Jordan 提问时间:9/29/2015 最后编辑:CommunityJordan 更新时间:5/9/2018 访问量:27186

问:

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

我有一个时间戳,一开始是这样的

'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

我从这个 stackoverflow 中获得了大部分代码

MomentJS 持续时间 差异

评论

1赞 CollinD 9/29/2015
难道你不能就这样做吗?duration.asMinutes()
1赞 dievardump 9/29/2015
duration.asMinutes()正如错误所说,是一个对象。不是一个函数,不要durationduration()
0赞 Jordan 9/29/2015
啊,是的,一个小疏忽,谢谢大家,我看了好几遍。

答:

16赞 Sahar Zehavi 9/29/2015 #1

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

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

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

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

timestamp.diff(moment());

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

有关更多信息,您应该阅读此处的官方文档。

评论

4赞 WebWanderer 9/26/2017
的第二个参数是 。.时刻 - 差异moment.diffunit of measuretimestamp.diff(moment(), 'minutes')
13赞 Custodio 2/1/2018 #2

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

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

根据有关差异显示持续时间(以分钟为单位)的文档

15赞 Raj Nandan Sharma 5/9/2018 #3

您也可以在最新时刻尝试此操作.js

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