Задать вопрос
@townee

Почему iphone пропускает проверку на возраст?

Всем привет!
Не могу понять, почему iphone не учитывает условие, а android учитывает.
У меня есть следующая проверка на возраст
var bDay = ""+yearVal+"-"+monthVal+"-"+dayVal+"";
var checkAge = Math.floor((new Date().getTime() - new Date(bDay)) / (24 * 3600 * 365.25 * 1000));
if(checkAge < 18) {
    $(".error").show();
        return;
}

Проблема только на айфонах, он пропускает эту проверку и идет дальше, из-за чего это может быть ?
  • Вопрос задан
  • 126 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
а) Чтобы не было непоняток с форматом даты входной строки, подставляйте параметры явно:
new Date(yearVal, monthVal, dayVal)
б) Еще полезно привести время к одной величине для сравнения:
(new Date()).getTime() - (new Date(yearVal, monthVal, dayVal)).getTime()

PS: А вообще, возраст нужно считать по каждому компоненту даты, чтобы не нарываться на високосные года:
var now = new Date();
var age = (now.getFullYear() - yearVal - ((now.getMonth() - (monthVal - 1) || now.getDate() - dayVal) < 0 ? 1 : 0));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы