我已经检查了论坛上询问的所有其他论坛,尝试过克隆方法似乎也不起作用。我想要做的是建立一个密钥声明系统,它将得到当前的日期,并添加密钥分配给它的任何数字,例如,密钥被分配给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));发布于 2022-11-11 00:57:35
Moment.add()改变了原始时刻,而不是返回更新的矩对象(来源于文档)。它似乎确实返回了某个时刻,特别是更新前的那个时刻的值。这是一种非常奇怪的实现方法,至少可以这么说,所以它绊倒你也就不足为奇了。
您需要在读取值之前进行时间操作。下列措施应能发挥作用:
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));https://stackoverflow.com/questions/74396884
复制相似问题