首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将getFullMonth和getFullDate包含到自动填充的年龄?

如何将getFullMonth和getFullDate包含到自动填充的年龄?
EN

Stack Overflow用户
提问于 2018-09-19 06:55:00
回答 1查看 184关注 0票数 1

我想自动填补我的年龄后,选择出生日期,我使用的getFullYear.在选择出生日期时是否可以包括getMonth和getDate?这是我的密码。Javascript

代码语言:javascript
复制
<script type = "text/javascript">
        $(document).ready(function () {
            var age = "";
            $('#dateofbirth').datepicker({
                onSelect: function (value, ui) {
                    var today = new Date();
                    age = today.getFullYear() - ui.selectedYear;
                    $('#myAge').val(age);
                },
                changeMonth: true,
                changeYear: true
            })
        })
    </script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 08:01:06

代码语言:javascript
复制
$(document).ready(function() {
    $('#dateofbirth').datepicker({
      onSelect: function (value, ui) {
        var selectedDate = new Date(ui.selectedYear, ui.selectedMonth, ui.selectedDay), //Convert value to date
            dateToday = new Date(), //Get the date today.
            age = Math.floor((dateToday - selectedDate) / 31536000000) //Get the difference of dates then convert to number of years.

        $('#age').val(age);
      },
      changeMonth: true,
      changeYear: true
    });
  });
代码语言:javascript
复制
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js'></script>
<input id='dateofbirth'>
<input id='age'>

更新:

我没有使用(1000*60*60*24*365) = 31536000000,而是使用了(1000*60*60*24*365.25) = 31557600000

每四年有一个额外的1天,所以我们没有循环通过它,我们只是在每年增加一个0.25来覆盖这个问题。

代码语言:javascript
复制
$(document).ready(function() {
    $('#dateofbirth').datepicker({
      onSelect: function (value, ui) {
        var selectedDate = new Date(ui.selectedYear, ui.selectedMonth, ui.selectedDay), //Convert value to date
            dateToday = new Date(), //Get the date today.
            age = Math.floor((dateToday - selectedDate) / 31557600000) //Get the difference of dates then convert to number of years.

        $('#age').val(age);
      },
      changeMonth: true,
      changeYear: true
    });
  });
代码语言:javascript
复制
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js'></script>
<input id='dateofbirth'>
<input id='age'>

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

https://stackoverflow.com/questions/52399856

复制
相关文章

相似问题

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