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