美文网首页
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