/**
* 根据身份证号,获取精缺周岁年龄
* @param {Object} idNumber 身份证号
*/
function getAgeByCardId(idNumber){
var birthYear = idNumber.substr(6,4)
var birthMonth = idNumber.substr(10,2)
var birthDay = idNumber.substr(12,2)
var d = new Date();
var nowYear = d.getFullYear();
var nowMonth = d.getMonth() + 1;
var nowDay = d.getDate();
var returnAge = 0
if(nowYear == birthYear && nowMonth<=birthMonth && nowDay<=birthDay){
returnAge = 0;//同年 则为0岁
}else{
var ageDiff = nowYear - birthYear ; //年之差
if(ageDiff > 0){
if(nowMonth == birthMonth){
var dayDiff = nowDay - birthDay;//日之差
if(dayDiff < 0){
returnAge = ageDiff - 1;
}else{
returnAge = ageDiff ;
}
}else{
var monthDiff = nowMonth - birthMonth;//月之差
if(monthDiff < 0){
returnAge = ageDiff - 1;
}else{
returnAge = ageDiff ;
}
}
}else{
returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
}
}
return returnAge;//返回周岁年龄
}
方法调用: getAgeByCardId('372925199207147520')