如何使用moment.js减去两次并将其与分钟数进行比较

时间:2016-09-15 18:27:38

标签: javascript ruby momentjs

我正在实现一个JS函数来镜像我在Ruby代码中的函数。

Ruby代码:

def autoextending?
  online_only? && ((actual_end_time - Time.now) <= autoextend_increment.minutes)
end

JS代码:

item.autoextending = function() {
  var self = this;
  var end_time = moment(self.actual_end_time);
  return (self.online_only && self.status == "accepting_bids" && ((end_time - moment()) <= self.autoextend_increment*60));
};

一点信息:

  • self.autoextend_increment将返回一个数字,例如5,表示分钟数。
  • 我需要对(end_time - moment())进行评估,以便将差异返回为秒数,以便我可以将其与autoextend_increment正确比较

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

moment在引擎盖下使用Date,作为原始值表示为自纪元以来的毫秒数。所以我们马上知道来自moment的算术将以毫秒为单位产生值:

item.autoextending = function() {
    var self = this;
    var end_time = moment(self.actual_end_time);
    return (self.online_only && self.status == "accepting_bids" && (((end_time - moment()) / (1000 * 60)) <= self.autoextend_increment));
};

((end_time - moment()) / (1000 * 60))将以分钟为单位给出一个值(一秒钟内1000毫秒,一分钟内60秒)。

你说self.autoextend_increment已经有几分钟了,所以不需要额外的算术。如果您真的想在几秒钟内进行比较,可以:((end_time - moment()) / 1000) <= self.autoextend_increment * 60

您也可以将转换标记为(end_time - moment()) / 6000,但为了演示目的,我将这些数字分解。