首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MomentJS添加函数不增加时间

MomentJS添加函数不增加时间
EN

Stack Overflow用户
提问于 2022-11-11 00:44:27
回答 1查看 24关注 0票数 1

我已经检查了论坛上询问的所有其他论坛,尝试过克隆方法似乎也不起作用。我想要做的是建立一个密钥声明系统,它将得到当前的日期,并添加密钥分配给它的任何数字,例如,密钥被分配给10天,它会将10天添加到日期。然而,这并没有增加时间。

这是它在尝试添加10天时返回给控制台的内容。

代码语言:javascript
复制
Thu Nov 10 2022 19:42:29 GMT-0500

这是我的密码

代码语言:javascript
复制
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));
EN

回答 1

Stack Overflow用户

发布于 2022-11-11 00:57:35

Moment.add()改变了原始时刻,而不是返回更新的矩对象(来源于文档)。它似乎确实返回了某个时刻,特别是更新前的那个时刻的值。这是一种非常奇怪的实现方法,至少可以这么说,所以它绊倒你也就不足为奇了。

您需要在读取值之前进行时间操作。下列措施应能发挥作用:

代码语言:javascript
复制
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));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74396884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档