根据身份证获取出生日期
// 身份证号
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
- 再通过余数对应校验位