JS根据身份证号计算周岁年龄

/**
 * 根据身份证号,获取精缺周岁年龄
 * @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')

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值