2011-05-23 327 views
1

我有兩個文本框。第一個是約會,第二個是約會。我有兩種情況:從出生日期計算年齡

  • 我知道這個生日,我填寫文本框和年齡進行計算,並在第二個文本框顯示,這個文本框是隻讀的
  • 我不知道生日,我進入一個年齡,沒有生日,沒有更多的動作

你有第一點的想法嗎?

+1

什麼日期格式那會進入?如果輸入日期有一個標準格式,爲什麼你不能分割字符串,獲得出生年份並找出差異? – 2011-05-23 11:58:01

+0

@Tarun:說我出生於2000年7月1日,現在是2011年5月23日。我幾歲了? – 2011-05-23 11:58:51

+0

是的,所以我問的是格式標準?是[月份日期],[年]' – 2011-05-23 12:00:45

回答

0
--markup-- 
<input id = "eAge" type = "text"/> 
<input type= "button" id = "fAge" value = "find"/> 
<input id = "age" type = "text"/> 

--jQuery -- 

$("#fAge").click(function() { 
    var currentYear = (new Date).getFullYear(); 
    var year = $("#eAge").val().split(','); 
    $("#age").val(currentYear - year[1]); 
}); 

這裏的的jsfiddle鏈接到它 - http://jsfiddle.net/GGgqx/

希望它幫助

+0

的輸入格式,我收到「NaN」作爲結果。 – 2011-05-23 18:50:25

+0

你給了什麼輸入?並且我給出的解決方案是基於格式爲[[month date],[year]'的輸入),您必須根據您的要求對其進行自定義:) – 2011-05-23 19:22:21

+1

-1因爲您的解決方案不會計算已錄入的價值已在歷年發生 – 2012-01-25 17:09:00

0

我的功能:

$('#txtFecha').focusout(function() { 

     var fecha = document.getElementById('txtFecha').value; 
     var edad = ''; 

     //supose my date is dd/mm/yyyy 
     if ((fecha.substring(2,3) != "/") && (fecha.substring(5,6) != "/")) { 
      edad = ''; 
     } 
     else { 
      var dia = fecha.substring(0, 2); 
      var mes = fecha.substring(3, 5); 
      var anio = fecha.substring(6, 10); 
      var diaActual = (new Date).getDay(); 
      var mesActual = (new Date).getMonth(); 
      var anioActual = (new Date).getFullYear(); 

      if (mes > mesActual) 
       edad = anioActual - anio - 1; 

      if (mesActual == mes && dia > diaActual) 
       edad = anioActual - anio - 1; 

      edad = anioActual - anio; 

      if (edad < 0 || edad > 100) 
       edad = ''; 

     } 
     $("#txt2Edad").val(edad); 

    });