在iPad上的Javascript年龄计算

时间:2011-10-10 10:59:26

标签: javascript ipad

在每个常规浏览器上,日期都是正常计算的......就像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&amp; Chrome

1 个答案:

答案 0 :(得分:2)

您需要在输入日期字符串上进行以下转换才能在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;
}