NodeJS使用Moment将日期保存到MongoDB

时间:2016-07-18 10:34:10

标签: node.js date momentjs

我试图使用MomentJS将日期保存到MongoDB。我想保存当前日期/时间加上1小时。要做到这一点,我使用下面的代码(我使用秒代码,因为这个数字将从API中提取,在几秒钟内给出一个数字,一旦我得到基础排序我将把3600改为变量):

var expire = moment().add(3600, 's').format();
User.update({email: req.user}, {$set: {expire: expire}}, function(err, update) {
    if(err) throw err;
});

如果我在console.log中显示expire的值,则会显示按预期添加1小时的时间。问题是它在我的数据库中保存的是当前时间,没有添加小时。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

在mongodb中,比较时间应该使用utc time和Date obj。 因为var expire = moment().add(3600, 's').format();返回的字符串不是obj。 您应该将其转换为Date obj,以便mongodb可以知道它。 你要做的很容易。

var expire = moment().add(3600, 's').format().toDate()

事实上,如果你想将mongo中的时间与gt和lt进行比较,我想你将时间改为utc。 let time = moment().utc(yourTime, "YYYY-MM-DD HH:mm:ss").toDate()