mongodb MomentJS添加函数不添加时间

iqxoj9l9  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(116)

我已经检查了所有其他论坛上问在这里尝试克隆的方法似乎也不工作。我正在尝试做的是使一个关键的索赔系统,它会得到当前的日期,并添加任何数字的关键已分配给它,例如,关键是分配10天,它会增加10天的日期。但它不增加时间。
这是尝试添加10天时返回到控制台内容

Thu Nov 10 2022 19:42:29 GMT-0500

这是我的代码

let userDB = await userSchema.find({ UserID: id });
let keysDB = await keysSchema.find({ Key: key });

var todayTime = moment(new Date());
let todayCurTime = todayTime.clone();

userDB = new userSchema({
  Name: name,
  Discrim: discrim,
  UserID: id,
  Time: todayCurTime.add(keysDB.Time, 'days')
})

console.log(`Updated time ${todayCurTime.add(keysDB.Time, 'days')}`)
await userDB.save().catch(err => console.log(err));
hm2xizp9

hm2xizp91#

Moment.add() * 修改了原始的moment*,而不是返回一个更新的moment对象(来源于docs)。看起来它确实返回了一个moment,但具体地说,它返回的是moment在更新之前的值。至少可以说,这是一种相当奇怪的实现方式,所以它绊倒你并不奇怪。
在读取值之前,需要进行时间操作。

let userDB = await userSchema.find({ UserID: id });
let keysDB = await keysSchema.find({ Key: key });

// You don't need to pass a Date() object if you just want the current date & time
const todayTime = moment();
const todayCurTime = todayTime.clone();
todayCurTime.add(keysDB.Time, 'days')

userDB = new userSchema({
  Name: name,
  Discrim: discrim,
  UserID: id,
  Time: todayCurTime
})

console.log(`Updated time ${todayCurTime}`)
await userDB.save().catch(err => console.log(err));

相关问题