anvas kuttan Ответов: 5

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


привет,

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

вот код

function CalculateAgeInQC(DOB, txtAge, Txndate) {
    if (DOB.value != '') {
        now = new Date(Txndate)
        var txtValue = document.getElementById(DOB).value;
        if (txtValue != null)
            dob = txtValue.split('/');
        if (dob.length === 3) {
            born = new Date(dob[2], dob[1] * 1 , dob[0]);
            age = now.getTime() - (born.getTime()) / (365.25 * 24 * 60 * 60 * 1000);
            alert(" now.getTime  " + now.getTime());
            alert(" born.getTime  " + born.getTime());
            age = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
            if (isNaN(age) || age < 0) {
                // alert('Input date is incorrect!');
            }
            else {
                document.getElementById(txtAge).value = age;
                document.getElementById(txtAge).focus();
            }
        }
    }
}



Заранее спасибо
Анвас

walterhevedeich

проблема в том что если сегодня день рождения я не буду считать возраст
Как это может быть проблемой? Конечно, вы не стали бы считать возраст, если бы DOB был сегодня, так как он все равно будет равен 0. Или я просто неправильно понял вопрос?

anvas kuttan

работает нормально во всех случаях но день рождения это текущая дата она показывает 0

т. е. 18/7/2011 сейчас
18/7/2010 дата рождения
возраст показывает 0 лет

:(

Divyam Sharma

Не на должном уровне

Prashant_Datir

Для чего используется 365.25 ?

5 Ответов

Рейтинг:
37

Rakesh From Patna

а ты попробуй вот это:-

<html>
<head>
<script language="javascript">
<!--
function Age()
{
var bday=parseInt(document.forms[0].txtBday.value);
var bmo=(parseInt(document.forms[0].txtBmo.value)-1);
var byr=parseInt(document.forms[0].txtByr.value);
var byr;
var age;
var now = new Date();
tday=now.getDate();
tmo=(now.getMonth());
tyr=(now.getFullYear());
{
if((tmo > bmo)||(tmo==bmo & tday>=bday))
{age=byr}
else
{age=byr+1}
alert("As of today, "+now+' \n'+", you are:"+(tyr-age)+ " years old");
}}
//-->
</script>
</head>
<body >
<form><center>
Enter your birthday&nbsp;&nbsp;<input type="text" name="txtBday" size="2"><br/>
Enter your birth Month(1-12)<input type="text" name="txtBmo"size="2"><br/>
Enter your 4 digit birth year<input type="text" name="txtByr"size="4" ><br/>
<input type="submit" value="submit" onClick="Age()"><input type="reset" value="reset"></center>
</form>
</body>
</html>


Ankur\m/

Этот вопрос вызывает проблему в его коде. ОП не спрашивал твой код. Есть тысячи таких примеров, доступных на Вэнь.

Рейтинг:
2

shefeekcm

привет,
этот код поможет вам

<script type="text/javascript">
функция calculate_age(birth_month,birth_day,birth_year)
{ today_date = новая дата();
today_year = today_date.возвратите();
today_month = today_date.getMonth();
today_day = today_date.функции getdate();
возраст = (today_year + 1900) - birth_year;
if ( today_month < (birth_month - 1))
{ возраст--; } если (((birth_month - 1) == today_month) и усилитель; & (today_day &ЛТ; birth_day))
{ возраст--; }
если (возраст > 1900)
{ возраст= 1900; }
return age;}</script>


Рейтинг:
13

anvas kuttan

ПРИВЕТ,

function CalculateAgeInQC(DOB, txtAge, Txndate) {
        if (DOB.value != '') {
            //now1 = new Date();alert(now1);
            now = new Date(Txndate)
            var txtValue = document.getElementById(DOB).value;
            if (txtValue != null)
                dob = txtValue.split('/');
            if (dob.length === 3) {
                born = new Date(dob[2], dob[1] * 1 - 1, dob[0]);
                if (now.getMonth() == born.getMonth() && now.getDate() == born.getDate()) {
                    age = now.getFullYear() - born.getFullYear();
                }
                else {
                    age = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
                }
                if (isNaN(age) || age < 0) {
                    // alert('Input date is incorrect!');
                }
                else {
                    document.getElementById(txtAge).value = age;
                    document.getElementById(txtAge).focus();
                }
            }
        }
    }



я нахожу это сам я публикую этот ответ для некоторых может быть нужно то же самое

спасибо Вам за все


Рейтинг:
1

Duregsh Singh

//DOB textbox Id where date of birth from calender is choose
//Age textbox where age after calculate is shown
//Use Jquery Referece file

$(document).ready(function () {
            $("#DOB").change(function () {
                var start_date = new Date($("#DOB").val());
                var date = new Date();
                var end_date = new Date(start_date);
               end_date.setFullYear(date.getFullYear()-start_date.getFullYear());
                $("#Age").val(end_date.getFullYear());
            });
        })


Рейтинг:
0

Dimitris Vasiliadis

Попробуйте также

<html>
<head>
<script type="text/javascript" language="javascript">
function calcAge(dtFrom, dtTo)
{
    var a = dtTo.getDate() + (dtTo.getMonth() + (dtTo.getFullYear() - 1700) * 16) * 32;
    var b = dtFrom.getDate() + (dtFrom.getMonth() + (dtFrom.getFullYear() - 1700) * 16) * 32;
    var x = Math.floor((a - b) / 32 / 16);
    return x < 0 ? null : x;
}
function calc()
{
    var dtTo = new Date(document.getElementById('enddate').value);
    var dtFrom = new Date(document.getElementById('startdate').value);
    document.getElementById('diff').value = calcAge(dtFrom, dtTo);
    return false;
}
</script>
</head>
<body>
Start Date:<input type='text' id='startdate' value='03/21/1972'/><br/>
End Date:<input type='text' id='enddate' value='03/21/1979'/><br/>
Years:<input type='text' id='diff' value=''/><br/>
<input type='button' onclick='javascript:calc();' value='Calculate'/>
</body>
</html>