身份证转日期

根据身份证获取出生日期

        // 身份证号
        var cardNumber = "341881199701015617";

        // 获取出生年月
        var year = cardNumber.substring(6, 10);
        var month = cardNumber.substring(10, 12);
        var day = cardNumber.substring(12, 14);

        // 计算出生日期后16周岁-1天的日期
        var date = new Date(year+'-'+month+'-'+day);
        date.setFullYear(date.getFullYear() + 16);  // 设置年
        //date = date - 1000 * 60 * 60 * 24;
        date.setDate(date.getDate() - 1);       // 设置日
        //date = new Date(date);
        console.log(date.getFullYear() + "-" + parseInt(date.getMonth()) +'- ' + date.getDate());

15位转18位

15位是一代身份证,缺省年份前缀19,和最后校验位
校验位计算

  • 每位乘以相应系数再累加
  • 数以11,余数为0-9
  • 再通过余数对应校验位
原文地址:https://www.cnblogs.com/xiongyungang/p/14243917.html