从出生日期开始验证年龄

时间:2015-06-28 14:50:51

标签: javascript jquery validation date

我正在寻找一个验证出生日期字段的解决方案,这是一个文本框我使用jQuery Masked Input生成格式dd / mm / yyyy,并使用dateITA:true其他方法来验证日期格式

现在我需要的是一个解决方案,验证年龄为18岁或以上的人来完成表格,我提出这个问题的原因是因为我在网上看到的大多数解决方案显然都说这些验证有效,但最终会因为飞跃而关闭一年等。

我正在寻找一种解决方案,可以验证年龄,而不仅仅是年份或月份,基本上从今天到18年前,因为这是我的表格所需的非常重要的功能。

任何可以链接的建议或文章都将非常感谢,

我已经在这里看过一个如下:

Calculate age in JavaScript

但根据评论,他们最终并不是长期准确的,大多数专业网站如何正确地做到这一点?

2 个答案:

答案 0 :(得分:3)

我同意评论(但无法对自己发表评论)

    function validate(date){
        var eightYearsAgo = momment().subtract("years", 18);
        var birthday = moment(date);

        if(!birthday.isValid()){
            // INVALID DATE
        }else if (eightYearsAgo.isAfter(birthday)){
            // 18+
        }else{
        // < 18
        }
    }

答案 1 :(得分:0)

您可以使用moment.js lib来计算出生日期和当前日期之差

const date = '16/05/2001';   // Your date
const format = 'DD/MM/YYYY'; // Your date format
const resultFormat = 'years' // Result format (years, months, days)

const age = moment().diff(moment(date, format), resultFormat, true);

if (age >= 18){
    console.log('Do what u want');
} else {
    console.log('Come back later');
}