zoukankan      html  css  js  c++  java
  • 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可用

  • 相关阅读:
    OSError: Initializing from file failed
    python之邮件提醒
    python之经纬度的获取
    Pandas写入CSV格式
    代码不同之处高亮显示
    Python之免费随机代理IP的获取以及使用
    正则之利用元素属性进行匹配
    时间戳的格式化
    简单实用的HTML中字符串的提取
    承接OpenCV Halcon视觉项目开发定制
  • 原文地址:https://www.cnblogs.com/xielong/p/8064466.html
Copyright © 2011-2022 走看看