【问题标题】:How to enable/validate date input only from current date to 50 years before in Moment.js?如何在 Moment.js 中仅启用/验证从当前日期到 50 年前的日期输入?
【发布时间】:2022-11-21 13:54:21
【问题描述】:

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

【问题讨论】:

标签: javascript reactjs date validation momentjs


【解决方案1】:

所以你必须先计算 50 年前的日期 https://momentjs.com/docs/#/manipulating/subtract/

fiftyYearsBackDate = moment().subtract(50, "years")

获取用户选择的日期

userDate = new Date()

从中创建时刻对象并进行查询 https://momentjs.com/docs/#/query/is-after/

moment(userDate).isAfter(fiftyYearsBackDate)

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

【讨论】:

    【解决方案2】:

    您想要计算从现在到生日之间的年数 difference,并检查它是否大于 50。

    const birthDate = '1970-01-01'
    var yearsDiff = moment().diff(birthDate, 'years'); 
    

    如果你想得到十进制的年差:

    var yearsDiff = moment().diff(birthDate, 'years', true); 
    

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

    官方文档:https://momentjs.com/docs/#/displaying/difference/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多