403 Stimmen

Berechnung des Alters anhand des Geburtsdatums im Format JJJJMMTT

Wie kann ich ein Alter in Jahren berechnen, wenn ich ein Geburtsdatum im Format JJJJMMTT habe? Ist es möglich mit Hilfe der Date() Funktion?

Ich bin auf der Suche nach einer besseren Lösung als der, die ich jetzt benutze:

var dob = '19800810';
var year = Number(dob.substr(0, 4));
var month = Number(dob.substr(4, 2)) - 1;
var day = Number(dob.substr(6, 2));
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
  age--;
}
alert(age);

-1voto

Malik Bagwala Punkte 1936

Die nachstehende Antwort ist der richtige Weg, wenn das Alter nur zu Anzeigezwecken angegeben werden soll (sie könnte nicht zu 100 % korrekt sein), aber zumindest ist es einfacher, sich das vorzustellen

function age(birthdate){
  return Math.floor((new Date().getTime() - new Date(birthdate).getTime()) / 3.154e+10)
}

-1voto

Muhammad Ibrahim Punkte 432
let dt = dob;

        let age = '';

        let bY = Number(moment(dt).format('YYYY')); 
        let bM = Number(moment(dt).format('MM')); 
        let bD = Number(moment(dt).format('DD')); 

        let tY = Number(moment().format('YYYY')); 
        let tM = Number(moment().format('MM')); 
        let tD = Number(moment().format('DD')); 

        age += (tY - bY) + ' Y ';

        if (tM < bM) {
            age += (tM - bM + 12) + ' M ';
            tY = tY - 1;
        } else {
            age += (tM - bM) + ' M '
        }

        if (tD < bD) {
            age += (tD - bD + 30) + ' D ';
            tM = tM - 1;
        } else {
            age += (tD - bD) + ' D '
        }

        //AGE MONTH DAYS
        console.log(age);

-1voto

    if (dobDate != undefined) {
   let todayDate = new Date();
   let ageyear = todayDate.getFullYear() - dobDate.getFullYear();
   let agemonth = todayDate.getMonth() - dobDate.getMonth();
   let ageday = todayDate.getDate() - dobDate.getDate();
   let nowDay = todayDate.getDate();
   let dobDay = dobDate.getDate();
   if (agemonth <= 0) {
      ageyear--;
      agemonth = (12 + agemonth);
   }

   if (nowDay < dobDay) {
      agemonth--;
      ageday = 30 + ageday;
   }
   if (agemonth == 12) {
      ageyear = ageyear + 1;
      agemonth = 0;
   }
   alert("Age in Year:" + ageyear + ',' + 'Month:' + agemonth + ',' + 'Day:' + ageday);
}

-1voto

Arun Prasad E S Punkte 8324

Alter aus Datumspicker berechnen

         $('#ContentPlaceHolder1_dob').on('changeDate', function (ev) {
            $(this).datepicker('hide');

            //alert($(this).val());
            var date = formatDate($(this).val()); // ('2010/01/18') to ("1990/4/16"))
            var age = getAge(date);

            $("#ContentPlaceHolder1_age").val(age);
        });

    function formatDate(input) {
        var datePart = input.match(/\d+/g),
        year = datePart[0], // get only two digits
        month = datePart[1], day = datePart[2];
        return day + '/' + month + '/' + year;
    }

    // alert(formatDate('2010/01/18'));

    function getAge(dateString) {
        var today = new Date();
        var birthDate = new Date(dateString);
        var age = today.getFullYear() - birthDate.getFullYear();
        var m = today.getMonth() - birthDate.getMonth();
        if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
            age--;
        }
        return age;
    }

-1voto

Rinat R-K Punkte 1

Wenn Sie das Alter in Monaten benötigen (Tage sind ein Näherungswert):

birthDay=28;
birthMonth=7;
birthYear=1974;

var  today = new Date();
currentDay=today.getUTCDate();
currentMonth=today.getUTCMonth() + 1;
currentYear=today.getFullYear();

//calculate the age in months:
Age = (currentYear-birthYear)*12 + (currentMonth-birthMonth) + (currentDay-birthDay)/30;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X