js中如何通过身份证号计算出生日期和年龄
在html中有如下标签
身份证号:<input type="text" id="Gra_IDCard" onChange="IDCardChange()"/> <br/> 出生日期:<input type="date" id="Gra_BirthDate"/> <br/> 用户年龄:<input type="number" id="Gra_NameAge"/>
在js中方法
<script> //身份证改变事件(孕妇) var IDCardChange = function () { //获取身份证号 var idCard = $('#Gra_IDCard').val(); //判断身份证长度 if (idCard.length == 18) { //获取计算后出生日期 var birthDateStr = getBirthDate(idCard); //设置出生日期 $('#Gra_BirthDate').val(birthDateStr); //获取当前的日期 var nowDateStr = getNowDate(); //获取计算后年龄(两个日期之间) var age = getAge(birthDateStr, nowDateStr); //设置年龄 $('#Gra_Age').val(age); } } //根据身份证号计算出生日期 var getBirthDate = function (IDCard) { //获取身份证号的年、月、日 var year = IDCard.substring(6, 10); var month = IDCard.substring(10, 12); var day = IDCard.substring(12, 14); //拼接成出生日期 var birthDate = year + '-' + month + '-' + day; return birthDate; } //根据两个日期计算年龄(是否过生日) var getAge = function (startDateStr, endDateStr) { //计算两个日期相差多少年 var startDate = new Date(startDateStr); var endDate = new Date(endDateStr); var yearNum = endDate.getFullYear() - startDate.getFullYear(); //获取两个日期(月+日)部分 var sStr = startDateStr.substring(5, 10); var eStr = endDateStr.substring(5, 10); //判断两个日期大小 //判断是否过生日 if (new Date(sStr) <= new Date(eStr)) { return yearNum + 1; } else { return yearNum; } } ///获取当前日期 var getNowDate = function () { var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1; var day = d.getDate(); var dateStr = year + '-' + getFormatDate(month) + '-' + getFormatDate(day); return dateStr; } //格式化日期的月份或天数的显示(小于10,在前面增加0) function getFormatDate(value) { if (value == undefined || value == "") { return ''; } var str = value; if (parseInt(value) < 10) { str = '0' + value; } return str; } </script>
实现效果(改变身份证号时,带出出生日期和年龄)
注:需引入jquery.min.js文件,保证jquery可用
平时多记记,到用时才能看看,记录你的进步,分享你的成果