美文网首页
js根据身份证获取年龄

js根据身份证获取年龄

作者: 呦丶耍脾气 | 来源:发表于2018-11-26 10:48 被阅读31次
    /**
    根据身份证号码判断性别
    15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日
    18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,
    第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。
    */
    //根据身份证号获取年龄
        function GetAge(identityCard) {
            var len = (identityCard + "").length;
            var strBirthday = "";
            if (len == 18)//处理18位的身份证号码从号码中得到生日和性别代码
            {
                strBirthday = identityCard.substr(6, 4) + "/" + identityCard.substr(10, 2) + "/" + identityCard.substr(12, 2);
            }
            if (len == 15) {
                var birthdayValue='';
                birthdayValue = identityCard.charAt(6)+identityCard.charAt(7);
                if(parseInt(birthdayValue)<10){
                    strBirthday = "20" + identityCard.substr(6, 2) + "/" + identityCard.substr(8, 2) + "/" + identityCard.substr(10, 2);
                }else{
                    strBirthday = "19" + identityCard.substr(6, 2) + "/" + identityCard.substr(8, 2) + "/" + identityCard.substr(10, 2);
                }
    
            }
            //时间字符串里,必须是“/”
            var birthDate = new Date(strBirthday);
            var nowDateTime = new Date();
            var age = nowDateTime.getFullYear() - birthDate.getFullYear();
            //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1
            if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) {
                age--;
            }
            return age;
        }
    

    相关文章

      网友评论

          本文标题:js根据身份证获取年龄

          本文链接:https://www.haomeiwen.com/subject/xcwvqqtx.html