Как рассчитать возраст пользователей, когда они вводят свою дату рождения в реагировать на родных? - PullRequest
0 голосов
/ 26 февраля 2020

Как рассчитать возраст пользователей, когда они вводят свою дату рождения в реагирующий на родную?

Я хочу проверить, что пользователю больше 18 лет или нет. Когда им вводится дата рождения.

Я использую реагирующую нативную сборку даты рождения пользователя.

Я пытаюсь рассчитать возраст пользователя, используя приведенный ниже код, но он не работает должным образом. Поэтому, пожалуйста, помогите мне. Как я могу достичь этой функции.

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 {

            }
        })
    }

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Используя пакет 'npm i moment'. Я решил эту проблему.

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:" "})
        }
    })
}
0 голосов
/ 26 февраля 2020

Вы можете сделать пользовательскую функцию, например так:

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"));
...