我试图在两个时间戳之间获得分钟差异
我有一个以
开头的时间戳'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
获得了大部分代码
答案 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();
答案 2 :(得分:3)
您也可以尝试使用最新的时刻.js
var start = moment('15:44:06','HH:mm:ss');
var minutesPassed = moment().diff(start, 'minutes');