在反应本机中输入出生日期时如何计算用户的年龄?

How to calculate age of users when they are entered their date of birth in react-native?

在react-native中输入出生日期时如何计算用户的年龄?

我想检查用户是否年满 18 岁或 not.When 他们输入了出生日期。

我正在使用 react-native-datepicker 获取用户的出生日期。

我正在尝试使用以下代码计算用户的年龄,但它无法正常工作。所以请帮助我。我如何才能实现此功能。

calculate_age = (date) => {
        var today = new Date();
        var birthDate = new Date(date); 
        console.log("get bod-->",birthDate) // create a date object directly from `dob1` argument
        var age_now = today.getFullYear() - birthDate.getFullYear();
        var m = today.getMonth() - birthDate.getMonth();
        if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
            age_now--;
        }
        console.log('my age', age_now);
        return age_now;
    }

    onDateChange = (date) => {
        this.setState({ date: date }, () => {
            console.log(date)
            if (this.calculate_age(date) < 18) {
                alert("You Are Not Eligable")
            } else {

            }
        })
    }

您可以像这样创建一个自定义函数:

const  getAge = (dateString)=>{
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
console.log('age: ' + getAge("1980/08/10"));

使用 'npm i moment' package.I 解决了这个问题。

onDateChange = (date) => {
    this.setState({ date: date }, () => {
        if (this.calculate_age(Moment(date,"DD-MM-YYYY").format("YYYY-MM-DD")) <= 17 ) {

            this.setState({errmsg:"You must be atleast 18 years of old to join."})
        }else{
            this.setState({errmsg:" "})
        }
    })
}