我试图使用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小时的时间。问题是它在我的数据库中保存的是当前时间,没有添加小时。
非常感谢任何帮助。
答案 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()