首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过自动填充表单,我如何在几年、几个月、几天内获得年龄?

问通过自动填充表单,我如何在几年、几个月、几天内获得年龄?
EN

Stack Overflow用户
提问于 2017-07-29 23:05:04
回答 1查看 912关注 0票数 2

我想用日期选择器自动填写我的年龄。当我使用日期选择器将生日放在生日表单上时,它应该自动填充表单中的年龄,然后它将自动确定它的年龄。例如,我的生日是1996年10月17日,今天是2017年7月30日,所以表格将自动填充如下:20年,9个月,13天。

代码语言:javascript
复制
<!--html form-->
<input type="date" name="birthday"> 10/17/1996
<input type="text" name="Years"> 20 years
<input type="text" name="m"> 9 months
<input type="text" name="d"> 13 days

<!--script right here-->
function getAge(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var Years = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        Years--;
    }
    return Years;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-29 23:19:49

你可以这样做:-

​

代码语言:javascript
复制
$(document).ready(function(){
  $('input[type="date"]').on('mouseout',function(){
    getAge($(this).val());
  });

});
function getAge(dateString) {
  if(dateString!==''){
    d1 = new Date();
    d2 = new Date(dateString);
    diff = new Date(
        d1.getFullYear()-d2.getFullYear(), 
        d1.getMonth()-d2.getMonth(), 
        d1.getDate()-d2.getDate()
    );
    
    $('input[name="Years"]').val(diff.getYear()+" Year(s)");
    $('input[name="m"]').val(diff.getMonth()+" Month(s)");
    $('input[name="d"]').val(diff.getDate()+" Day(s)");
  }
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" name="birthday"><br/><br/>
<input type="text" name="Years"><br>
<input type="text" name="m"><br>
<input type="text" name="d"><br>

​

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45394870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档