首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中显示来自DoB输入的年龄

在Javascript中显示来自DoB输入的年龄
EN

Stack Overflow用户
提问于 2015-01-02 01:52:08
回答 3查看 2.1K关注 0票数 0

我正在尝试在html/javascript中创建一个表单,用户可以在其中输入他们的出生日期,然后显示一条消息,使用来自他们的出生日期的数据来说明“你是'x‘岁”。然而,我完全不确定如何让它工作?

下面是我目前掌握的代码:

HTML:

代码语言:javascript
复制
<input type="date" id="myBirthday" value="dd-mm-yyyy">
<button onclick="submitBirthday()">Submit</button>

JS:

代码语言:javascript
复制
function submitBirthday() {
    var birthday = document.getElementById("myBirthday").value;
    document.getElementById("displayBirthday").innerHTML = ("You are " + birthday + " years old.");
}

我意识到这会显示“你目前'dd-mm-yyyy‘岁,但这是我所能做的一切。

任何帮助都将不胜感激!谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-01-02 02:19:54

你可以用现在的日期减去出生日期来算出年龄。

请看这个。

How to subtract date/time in javascript?

票数 0
EN

Stack Overflow用户

发布于 2015-01-02 02:25:46

根据This页面,以下是从指定日期检索年龄的固定代码:

代码语言:javascript
复制
function submitBirthday() {
    var minutes = 1000 * 60;
    var hours = minutes * 60;
    var days = hours * 24;
    var years = days * 365;

    var birthday = Date.parse(document.getElementById("myBirthday").value);
    var dateNow = new Date();
    var YearsOld = Math.round((dateNow-birthday)/ years);

    document.getElementById("displayBirthday").innerHTML = ("You are " + YearsOld + " years old.");
}
代码语言:javascript
复制
<input type="date" id="myBirthday" value="dd-mm-yyyy">
<button onclick="submitBirthday();">Submit</button>
<hr>
<div id="displayBirthday"></div>

票数 0
EN

Stack Overflow用户

发布于 2015-01-02 02:39:47

下面是你可以用来获取出生日期的代码

代码语言:javascript
复制
var input = '5/1/1991';// Find the user's input
    var dob = input.split('/'); // split the date by separator
    //console.log(dob);
    var bd = dob[0];// find birth date, month and year
    var bm = dob[1];
    var by = dob[2];

    var curDate = new Date();// find current date
    var cd = curDate.getDate();
    var cm = parseInt(curDate.getMonth(), 10) + 1;
    var cy = curDate.getFullYear();
    //console.log(cd, cm, cy);

    if (cd < bd) {
        var dayToMinus;
        switch(cm) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                dayToMinus = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                dayToMinus = 30;
                break;
            case 2:
                if (cy % 4) {
                    dayToMinus = 28;
                } else {
                    dayToMinus = 29;
                }
        }
        cd = cd + dayToMinus;
        cm = cm - 1;
    }

    if (cm < bm) {
        cm = cm + 12;
        cy = cy - 1;
    }
    console.log("You are "+ (cy - by) +" years "+ (cm - bm) + " months "+ (cd - bd) + " days old");//This will console ur age
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27733139

复制
相关文章

相似问题

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