比较与Mongoose保存后的日期

时间:2014-01-28 09:40:07

标签: node.js mongodb date comparison mongoose

这是我的猫鼬模式的一部分

var mySchema = mongoose.Schema({
  expires: { type: Date, required: false }
}

我插入一个文档,明天即将到期:

item.expires = Date.now() + 1;
item.save(...);

然后我读取保存并阅读文档并测试它是否已过期

if (item.expires < Date.now())

但是,此表达式始终返回true。查看我的调试器,item.expires列为Date,而Date.now()列为长号。

我怎样才能进行这项测试?为什么两种不同的类型甚至认为它们的设置方式相同?

1 个答案:

答案 0 :(得分:1)

Date.now()会返回一个数字unix timestamp。它以毫秒为单位,因此您不会将到期日期设置为第二天,而是将其设置为下一毫秒。说,如果您再次将数字转换为Date对象,则需要使用Date

 item.expires =          Date.now() + 24*3600*1000;
 //or
 item.expires = new Date(Date.now() + 24*3600*1000);

您可以添加24小时毫秒,然后,如果需要,可以再次将其转换为Date对象。