在出生日期时自动获得年龄 [英] Getting age automatically when given Date of Birth

查看:91
本文介绍了在出生日期时自动获得年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从一个人的出生日期算起一个人的年龄。我有一个HTML代码,我使用日期选择器作为dob,当我给出出生日期时,它会自动显示年龄而不提交。请帮助我找到解决方案。

 < html> 
< head>
< title>
DOB计算
< / title>
< link rel ='stylesheet'type ='text / css'href ='jquery-ui.css'/>
< script type ='text / javascript'src ='jquery.min.js'>
< / script>
< script type ='text / javascript'src ='jquery-ui.min.js'>
< / script>
< script type ='text / javascript'src ='jquery.js'>
< / script>
< script type ='text / javascript'src ='jquery-ui-custom.js'>
< / script>
< script type ='text / javascript'src ='jquery.ui.datepicker.js'>
< / script>
< script type =text / javascript>
$(函数(){

$('#datepicker')。datepicker({
changeMonth:true,
changeYear:true,
dateFormat ('/');
// firstDay:1, = new Date(dateText [2],dateText [0] - 1,dateText [1]);
BDateArr =(''+ Bdate).split('');
//document.getElementById ('DOW')。value = BDateArr [0];
Cdate = new Date;
CDateArr =(''+ Cdate).split();
Age = CDateArr [3 ] - BDateArr [3];
document.getElementById('AGE')。value = Age;
// DOBcalc(dateText);
// DOBcalc();
}
})

});
< / script>
< / head>

< body>
< form>
DOB(mm / dd / yyyy):
< input type =textid =datepickervalue =''>
年龄:
< input id =AGEtype =textvalue =>
< / form>
< / body>
< / html>


解决方案

你可以尝试使用这个函数作为你的 onSelect 事件处理程序代替:

  $('#dob')。datepicker({ 
onSelect:function(value,ui){
var today = new Date(),
dob = new Date(value),
age = new Date(today - dob) .getFullYear() - 1970;
$ b $('#age')。text(age);
},
maxDate:'+ 0d',
yearRange :'1920:2010',
changeMonth:true,
changeYear:true
});

这应该是非常准确的(并且比我的旧代码好得多),因为所有东西都已经交给本地 Date 对象。

请看这里的一个简单演示: http://www.jsfiddle.net/yijiang/PHvYK/1


I wanted to get the age of a person from his date of birth. I have a HTML code where I'm using a datepicker for dob, when I give the date-of-birth it show automatically show the age without giving submit. Please help me in finding a solution for this.

<html>
    <head>
        <title>
            DOB calculations
        </title>
        <link rel='stylesheet' type='text/css' href='jquery-ui.css' />
        <script type='text/javascript' src='jquery.min.js'>
        </script>
        <script type='text/javascript' src='jquery-ui.min.js'>
        </script>
        <script type='text/javascript' src='jquery.js'>
        </script>
        <script type='text/javascript' src='jquery-ui-custom.js'>
        </script>
        <script type='text/javascript' src='jquery.ui.datepicker.js'>
        </script>
        <script type="text/javascript">
            $(function() {

                $('#datepicker').datepicker({
                    changeMonth: true,
                    changeYear: true,
                    dateFormat: 'mm/dd/yy',
                    //firstDay: 1,
                    onSelect: function(dateText, inst) {
                        dateText.split('/');
                        Bdate = new Date(dateText[2], dateText[0] - 1, dateText[1]);
                        BDateArr = ('' + Bdate).split(' ');
                        //document.getElementById('DOW').value = BDateArr[0]; 
                        Cdate = new Date;
                        CDateArr = ('' + Cdate).split(" ");
                        Age = CDateArr[3] - BDateArr[3];
                        document.getElementById('AGE').value = Age;
                        // DOBcalc(dateText); 
                        //DOBcalc(); 
                    }
                })

            });
        </script>
    </head>

    <body>
        <form>
            DOB (mm/dd/yyyy):
            <input type="text" id="datepicker" value=''>
            Age:
            <input id="AGE" type="text" value="">
        </form>
    </body>
</html>

解决方案

You can try using this function as your onSelect event handler instead:

$('#dob').datepicker({
    onSelect: function(value, ui) {
        var today = new Date(),
            dob = new Date(value),
            age = new Date(today - dob).getFullYear() - 1970;

        $('#age').text(age);
    },
    maxDate: '+0d',
    yearRange: '1920:2010',
    changeMonth: true,
    changeYear: true
});

This should be very accurate (and much better than my old code), since everything's been handed off to the native Date object.

See a simple demonstration of this here: http://www.jsfiddle.net/yijiang/PHvYK/1

这篇关于在出生日期时自动获得年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆