繁体   English   中英

使用Moment.js以分钟格式比较时间,该格式不会在小时上重置

[英]Comparing time using Moment.js in a minute format that doesn't reset on the hour

我试图根据对象的修改时间(格式为: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中将此功能用作过滤器功能的一部分。但是我将其删除,因为我认为这不是必要的)

由于您正在使用Moment.js ,因此可以使用内置的diff函数来返回两个时刻之间的时间段。

function() {
    return function(entry) {
        var elpTime = moment(entry.arrival_time).diff(moment(),'minutes');

        return elpTime;
    }
};

从文档中:

支持的度量是年,月,周,天,小时,分钟和秒。

默认情况下,moment#diff将返回四舍五入的数字。 如果需要浮点数,则将true作为第三个参数传递。 在2.0.0之前,moment#diff返回的是四舍五入的数字,而不是四舍五入的数字。

文档中的示例:

var a = moment([2008, 6]);
var b = moment([2007, 0]);
a.diff(b, 'years');       // 1
a.diff(b, 'years', true); // 1.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM