首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Moment.js中只启用/验证从当前日期到50年前的日期输入?

问如何在Moment.js中只启用/验证从当前日期到50年前的日期输入?
EN

Stack Overflow用户
提问于 2022-11-21 05:18:24
回答 4查看 49关注 0票数 0

我正在使用moment.js。我想限制用户的儿子,他只能选择一个日期,从当前日期到50年前。简而言之,我只希望用户的出生日期不能超过50年。因此,从目前的日期起,只有50年前的范围才应该存在。我怎样才能做到呢?请引导我。

EN

回答 4

Stack Overflow用户

发布于 2022-11-21 05:31:18

您需要计算从现在到生日这段时间内的difference,并检查它是否大于50。

代码语言:javascript
复制
const birthDate = '1970-01-01'
const yearsDiff = moment().diff(birthDate, 'years'); 

如果你想得到小数点上的年数差异:

代码语言:javascript
复制
const yearsDiff = moment().diff(birthDate, 'years', true); 

yearsDiff将包含差异,因此您可以对其进行if检查,以查看它是否大于50。

这方面的正式文档:https://momentjs.com/docs/#/displaying/difference/

票数 2
EN

Stack Overflow用户

发布于 2022-11-21 05:26:49

所以你必须计算50年前的第一次https://momentjs.com/docs/#/manipulating/subtract/

代码语言:javascript
复制
fiftyYearsBackDate = moment().subtract(50, "years")

获取用户选择的日期

代码语言:javascript
复制
userDate = new Date()

创建矩对象并执行查询https://momentjs.com/docs/#/query/is-after/

代码语言:javascript
复制
moment(userDate).isAfter(fiftyYearsBackDate)

这将返回boolean,您可以使用它来显示错误消息。

票数 1
EN

Stack Overflow用户

发布于 2022-11-21 06:04:31

通过使用“瞬间”,你可以很容易地得到像这样的过去和未来的约会-

代码语言:javascript
复制
const past = moment().subtract(50, 'years'); // To past
const future = moment().add(50, 'years'); // Back to future

最后

代码语言:javascript
复制
const today = moment();
moment(today).isAfter(past, 'year'); // return: true || false

参考站点网址是- https://everyday.codes/javascript/how-to-format-date-in-javascript-with-moment-js/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74514537

复制
相关文章

相似问题

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