2015-01-01 2 views
0

Я пытаюсь создать форму в html/javascript, где пользователь может ввести дату своего рождения, а затем отобразится сообщение с сообщением «you are» x «years old», используя данные с даты их рождения. Однако я совершенно не уверен, как заставить это работать?Показывать возраст от ввода DoB в Javascript

Вот код, у меня в данный момент:

HTML:

<input type="date" id="myBirthday" value="dd-mm-yyyy"> 
<button onclick="submitBirthday()">Submit</button> 

JS:

function submitBirthday() { 
    var birthday = document.getElementById("myBirthday").value; 
    document.getElementById("displayBirthday").innerHTML = ("You are " + birthday + " years old."); 
} 

Я понимаю, что это показывает «вы 'дд-мм-гггг' лет в настоящее время, но это все, что я смог сделать.

Любая помощь будет принята с благодарностью! Спасибо

+2

, пожалуйста, после того, что вы пробовали до сих пор – Banana

+0

<входной тип = идентификатор = значение "myBirthday" "дата" = "дд-мм-гггг"> кнопку Отправить соборования submitBirthday() { var birthday = document.getElementById ("myBirthday"). Value; document.getElementById ("displayBirthday"). InnerHTML = ("У вас есть" + день рождения + "лет."); Я понимаю, что это показывает, что вы сейчас «dd-mm-yyyy», но это все, что я смог сделать. –

ответ

0

Вы можете узнать возраст, вычитая дату рождения с настоящего времени.

Пожалуйста, проверьте это.

How to subtract date/time in javascript?

+0

Пожалуйста, предоставьте решение здесь. Ваша ссылка может быть разорвана в будущем. – seebiscuit

+0

Это наиболее вероятно, не будет. –

+1

Знаменитые последние слова – seebiscuit

0

согласно This странице, вот ваш фиксированный код для получения возраста с указанной даты:

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."); 
 
}
<input type="date" id="myBirthday" value="dd-mm-yyyy"> 
 
<button onclick="submitBirthday();">Submit</button> 
 
<hr> 
 
<div id="displayBirthday"></div>

0

Вот код и может использовать, чтобы получить дата рождения

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