我正在尝试根据对象的修改时间(格式为:2014-02-19T18:49:15)创建一个计数计时器,并使用Moment.js将其与当前时间进行比较。但是当它达到60分钟时,它会重新开始回到0.我认为这是因为我只是比较这里的分钟数,或者至少使用数学来将毫秒数改为整数格式?我不太确定,当我得到正确格式的分钟时,我很兴奋。几分钟的差异就是我想要回归的。所以例如在一个半小时后我想要一个'90'的返回值。
function() {
return function(entry) {
var elpTime = Math.floor(((Date.parse(moment()) - Date.parse(entry.arrival_time)) / (1000*60)) % 60);
return elpTime;
}
};
以下是该对象的示例。
{
patient_id: 198,
arrival_time: "2014-02-19T18:49:15",
last_modified: "2014-02-19T18:49:15"
}
我知道我错过了一些可能很明显的东西。但任何帮助表示赞赏。谢谢!
(应该注意我在Angular.js中使用它作为过滤器功能的一部分。但是我把它剥离了,因为我认为它不是nessacary)
答案 0 :(得分:0)
由于您使用的是Moment.js,因此您可以使用内置的diff函数返回两个时刻之间的时间段。
function() {
return function(entry) {
var elpTime = moment(entry.arrival_time).diff(moment(),'minutes');
return elpTime;
}
};
来自文档:
支持的测量包括年,月,周,日,小时,分钟和秒。
默认情况下,moment#diff将返回向下舍入的数字。如果需要浮点数,请将true作为第三个参数传递。在2.0.0之前,时刻#diff返回舍入的数字,而不是向下舍入的数字。
文档示例:
var a = moment([2008, 6]);
var b = moment([2007, 0]);
a.diff(b, 'years'); // 1
a.diff(b, 'years', true); // 1.5