Расчет возраста Javascript на iPad - PullRequest
0 голосов
/ 10 октября 2011

В каждом обычном браузере дата рассчитывается обычно .. как 38 лет.

На IPad я получаю сообщение об ошибке не числа (NaN) ... но почему?

function getAge(date) {
    var today = new Date();
    var birthDate = new Date(date);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;

}

РЕДАКТИРОВАТЬ: NaN @ IPad, IE8 и корректная работа в Firefox & Chrome

1 Ответ

2 голосов
/ 10 октября 2011

Для правильной работы на iPad / iPhone необходимо выполнить следующие преобразования входной строки даты.

function getAge(date) {
    date = date.replace(/-/,"/").replace(/-/,"/"); //substitute - with /
    var today = new Date();
    var birthDate = new Date(date);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...