本文介绍了在出生日期时自动获得年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从一个人的出生日期算起一个人的年龄。我有一个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
对象。
请看这里的一个简单演示:
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
这篇关于在出生日期时自动获得年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!