我正在努力实现一个 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
进行比较正确地
感谢任何帮助。
最佳答案
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
但出于演示目的,我对这些数字进行了分割。
关于javascript - 如何使用 moment.js 减去两次并将其与分钟数进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39517985/