gpt4 book ai didi

javascript - 使用 moment js 进行 DOB 验证

转载 作者:行者123 更新时间:2023-11-30 14:10:04 24 4
gpt4 key购买 nike

我正在尝试满足一种业务逻辑,如果用户的年龄在 100 岁或以下,则会对其进行验证。我正在使用 moment js 来计算基于 DOB 输入的年差。以下是我的逻辑

let isValidDate = true;
const maxAge = 100;
const years = moment().diff(moment(dateVal, 'YYYY-MM-DD'), 'years', true);

if (years > maxAge) {
isValidDate = false;
}
.......

根据当前的逻辑,我的值返回一个浮点值。例如,如果我输入 11/2/1919 返回 100.003,当我希望日期为真时,它验证日期为假。如果我将 diff() 中的最后一个参数更改为 false,它将计算为 100,但这也会将 1/1/1919 计算为100.

有没有更好的方法来处理这个用例?

最佳答案

无需计算经过的年数(这可以得到分数结果),只需添加所需的年数并检查结果是否在范围内。

// The birth date - be sure to parse in the same format you're expecting:
const dob = moment("11/2/1919", "D/M/YYYY");

// The constant number of years you don't want to exceed
const maxAge = 100;

// Clone the dob (to not mutate it), increment by the years, and compare with day precision
const isValidDate = dob.clone().add(maxAge, 'years').isSameOrBefore(moment(), 'day');

关于javascript - 使用 moment js 进行 DOB 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com