Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17
Thema: [Programmierung] PHP: Alter bestimmen wie kann ich in PHP, nach eingabe eines Datums (yyyy-mm-tt) das alter der person bestimmen?...
  1. #1
    treuer Stammgast Avatar von MasterOD
    Registriert seit
    05.04.02
    Ort
    ja
    Beiträge
    154

    PHP: Alter bestimmen

    wie kann ich in PHP, nach eingabe eines Datums (yyyy-mm-tt) das alter der person bestimmen?

  2.   Anzeige

     
  3. #2
    Administrator Avatar von Astrominus
    Registriert seit
    03.09.01
    Ort
    Niefern
    Beiträge
    13.008

    AW: [Programmierung] PHP: Alter bestimmen

    Juni 2002

    Warum sehe ich das jetzt erst ???
    Vielleicht weil ich damals noch nicht sehr viel mit PHP am Hut hatte.
    Der arme MasterOD hat sicher schon eine Lösung gefunden, aber vielleicht interessiert es mal noch jemand.

    Datumsberechnungen gehen normalerweise am einfachsten mit Timstamps, da wir aber hier davon ausgehen müssen, das es leute gibt, die vor dem 1.1.1970 geboren sind geht das natürlich nicht.
    Also müssen wir das anders lösen.
    Hier mal ein komplettes Script:
    Code:
    <form action="alter.php" method="post">                  //Das Eingabeformular
    Tag: <input type="text" name="tag" size="2">
    Monat: <input type="text" name="monat" size="2">
    Jahr: <input type="text" name="jahr" size="4">
    <input type="submit" name="berechnen" value="Berechnen">
    </form>
    PHP-Code:
    <?

    if($berechnen)
    {
    $heute_tag=date("d");            //Aktueller Tag
    $heute_monat=date("m");     //Aktueller Monat
    $heute_jahr=date("Y");          //Aktuelles Jahr
    $jahr_geb=$heute_jahr-$jahr;     //Geburtsjahr vom Aktuellen Jahr Subtrahieren
    if (mktime(0,0,0,$heute_monat,$heute_tag,$heute_jahr) < mktime(0,0,0,$monat,$tag,$heute_jahr)) 
    //Abfrage ob im aktuellen Jahr der Geburtstag schon überschritten wurde
     
    {
    $jahr_geb--;    //Wenn nicht, dann ein Jahr abziehen
     
    }
    echo 
    $jahr_geb  //Ausgabe
    }

    ?>

  4. #3
    Herzlich willkommen!
    Registriert seit
    12.10.06
    Beiträge
    3

    Daumen hoch AW: [Programmierung] PHP: Alter bestimmen

    Es gibt doch sicherlich auch die Möglichkeit den Code soweit zu erweitern das auch der Monat und der die Tage seit dem Geburtstag berechnet werden, oder?

    Sollte dann so aussehen: xyz ist 32 Jahre, 4 Monate und 26 Tage alt.

    Kann jemand den Code so erweitern??

    Gruß
    Matze

  5. #4
    kennt sich schon aus
    Registriert seit
    23.04.06
    Beiträge
    30

    AW: [Programmierung] PHP: Alter bestimmen

    Einen PHP Code dafür kann ich dir leider nicht geben, dafür habe ich hier ein JavaScript mit dem die Taggenaue berechnung des Lebensalters möglich ist:
    Code:
    <script language="JavaScript">
    	function calculate(year, month, day) {
    	    var monthname = new Array(12);
    		monthname[1] = "January";
    		monthname[2] = "February";
    		monthname[3] = "March";
    		monthname[4] = "April";
    		monthname[5] = "May";
            		monthname[6] = "June";
            		monthname[7] = "July";
            		monthname[8] = "August";
            		monthname[9] = "September";
            		monthname[10] = "October";
            		monthname[11] = "November";
            		monthname[12] = "December";
    
    		/* Wochentag berechnen und ausgeben */
            		var bday = " "+ year +", "+monthname[month] + ", "+day;
    		var bday = new Date(bday);
    
    		/* Differenz bilden */
    		bday = bday.getTime();
    		var now = new Date();
    		now = now.getTime();
    		var diff = now - bday;
    
    		/* Jahre, Monate, Tage ausrechnen */
    		var years = (diff - (diff % 31557600000)) / 31557600000;
    		diff = diff - (years * 31557600000);
    		var months = (diff - (diff % 2628000000)) / 2628000000;
    		diff = diff - (months * 2628000000);
        		var days = (diff - (diff % 86400000)) / 86400000;
    
    		if(days > -1) {
    	    	  if (years != 0) {
            		  var age = "Mein aktuelles Alter betr&auml;gt heute: " + years + " Jahr";
    		    if (years > 1) age = age + "e";
    		  }
    		  if (months != 0) {
            		  age = age + ", " + months + " Monat";
    		    if (months > 1) age = age + "e";
    		  }
    		  if (days != 0) {
            		  age = age + " und " + days + " Tag";
    		    if (days > 1) age = age + "e";
    		  }
    	        }
    	        age = age + "!";
    	        return age;
             }
             </script>
    		/*Geburtsdatum: */
    <script language="JavaScript"> document.write(calculate(JAHR,MONAT,TAG)); </script>
    Beim Kommentar "Geburtsdatum" müssen natürlich noch die Werte JAHR, MONAT und TAG angepasst werden.

  6. #5
    Herzlich willkommen!
    Registriert seit
    12.10.06
    Beiträge
    3

    AW: [Programmierung] PHP: Alter bestimmen

    Kann man das Script auch mit Daten aus einer Datenbank füttern??
    Aber das Script wird sicherlich geblockt bei denen die die JAVA-Scripts blocken, oder??

    Bin bei Java-Script absoluter Noob.

  7. #6
    kennt sich schon aus
    Registriert seit
    23.04.06
    Beiträge
    30

    AW: [Programmierung] PHP: Alter bestimmen

    So hab mir mal eben die Arbeit gemacht jetzt auch ein PHP Script zur Taggenauen Altersbestimmung zu schreiben:
    PHP-Code:
    <?php
    $unixzt 
    time(); //aktueller Zeitstempel
    $unixzt1 mktime(00,00,00,04,05,1989); //Zeitstempel an Geburtstag
    $datum date("d.m.Y",$unixzt1); //Kontrollumrechnung Zeitstempel ->Datum
      
    echo $datum." = $unixzt1"//Ausgabe Kontrollwert
    $momjahrdate("Y",$unixzt); //Momentanes Jahr
    $mommondate("m",$unixzt); //Momentaner Monat
    $momtagdate("d",$unixzt); //Momentaner Tag

    $gebjahrdate("Y",$unixzt1); //Geburtsjahr
    $gebmondate("m",$unixzt1); //Geburtsmonat
    $gebtagdate("d",$unixzt1); //Geburtstag

    $jahr=$momjahr-$gebjahr//Differenz zwischen aktuellem Jahr und Geb. Jahr = aktuelles alten in Jahren
    $mon=$mommon-$gebmon//s.o.
    $tag=$momtag-$gebtag//s.o.
    echo "<br />";
    echo 
    "Ich bin ".$jahr." Jahre, ".$mon." Monate und ".$tag." Tage alt."//Ausgabe aktuelles Alter
    ?>
    Obwohl ich den Unix Zeitstempel verwende, sind auch Altersbestimmungen von Personen die vor dem 01.01.1970 geboren sind möglich.
    Eine Datenbankanbindung dieses Scripts sollte möglich sein.

    Hinweis: Das Geburtsdatum muss in der Form mm,tt,jjjj eingegeben werden (ich bin am 5. April 1989 geboren, die Eingabe im Script muss also 00,00,00,04,05,1989 lauten, die sechs vorherstehenden Nullen sind die Uhrzeitangabe.

  8. #7
    Administrator Avatar von Astrominus
    Registriert seit
    03.09.01
    Ort
    Niefern
    Beiträge
    13.008

    AW: [Programmierung] PHP: Alter bestimmen

    Nicht schlecht, allerdings nicht ganz korrekt.

    Ich bekomme als Ergebniss:
    Ich bin 41 Jahre, 5 Monate und -14 Tage alt

  9. #8
    kennt sich schon aus
    Registriert seit
    23.04.06
    Beiträge
    30

    AW: [Programmierung] PHP: Alter bestimmen

    Kann es vll sein das du dich bei der Eingabe deines Geburtsdatums vertippt hast?
    Bei mir funktioniert das Script einwandfrei:
    05.04.1989 = 607730400
    Ich bin 17 Jahre, 6 Monate und 7 Tage alt.

  10. #9
    Administrator Avatar von Astrominus
    Registriert seit
    03.09.01
    Ort
    Niefern
    Beiträge
    13.008

    AW: [Programmierung] PHP: Alter bestimmen

    Nö, nix vertippt.

    Aber Du musst bedenken, das der 5. bereits vergangen ist und der 26. (Der Tag meiner Niederkunft ) erst noch kommt.

    Ich bin also 41 Jahre 4 Monate und 16 Tage alt.

    Während es bei Dir auch mit den Monaten aufgeht, funktioniert das in meinem Falle nicht.

  11. #10
    kennt sich schon aus
    Registriert seit
    23.04.06
    Beiträge
    30

    AW: [Programmierung] PHP: Alter bestimmen

    Stimmt, dieser Denkfehler von mir ist mir grade auch auf gefallen.
    Werde heute aber nicht mehr an einr Lösung arbeiten.

    Danke für deinen Hinweis :-)

  12. #11
    Administrator Avatar von Astrominus
    Registriert seit
    03.09.01
    Ort
    Niefern
    Beiträge
    13.008

    AW: [Programmierung] PHP: Alter bestimmen

    Ich war mal so frei und habe Dein Script ein wenig modifiziert.

    Jetzt funktioniert es auch bei meinem Geburtstag.

    PHP-Code:
    <?php 
    $unixzt 
    time(); //aktueller Zeitstempel 
    $unixzt1 mktime(00,00,00,04,05,1989); //Zeitstempel an Geburtstag 
    $datum date("d.m.Y",$unixzt1); //Kontrollumrechnung Zeitstempel ->Datum 
      
    echo $datum." = $unixzt1"//Ausgabe Kontrollwert 
    $momjahrdate("Y",$unixzt); //Momentanes Jahr 
    $mommondate("m",$unixzt); //Momentaner Monat 
    $momtagdate("d",$unixzt); //Momentaner Tag 

    $gebjahrdate("Y",$unixzt1); //Geburtsjahr 
    $gebmondate("m",$unixzt1); //Geburtsmonat 
    $gebtagdate("d",$unixzt1); //Geburtstag 

    $jahr=$momjahr-$gebjahr//Differenz zwischen aktuellem Jahr und Geb. Jahr = aktuelles alten in Jahren 
    $mon=$mommon-$gebmon//s.o. 
    $tag=$momtag-$gebtag//s.o. 
    //Modifikation
    if($tag<0)
    {
    $mon--; //Bei negativen Tagen, einen Monat abziehen
    $a=mktime(00,00,00,$mommon,$momtag,$momjahr)-mktime(00,00,00,$mommon-1,$gebtag,$momjahr); //Berechnung der (Rest)Tage als Timestamp
    $tag=$a/86400//Umrechnung in Tage
    }
    //Modifikation Ende
    echo "<br />"
    echo 
    "Ich bin ".$jahr." Jahre, ".$mon." Monate und ".$tag." Tage alt."//Ausgabe aktuelles Alter 
    ?>
    #EDIT
    Ergänzend möchte ich noch hinzufügen, das negative Timestamps nicht von allen Plattformen (z.B. Windows) verarbeitet werden können und zu Fehlermeldungen führen.
    Geändert von Astrominus (12.10.06 um 22:50 Uhr)

  13. #12
    Herzlich willkommen!
    Registriert seit
    12.10.06
    Beiträge
    3

    Idee AW: [Programmierung] PHP: Alter bestimmen

    Das mit den Negativen Tagen klappt. Nur wie ist das bei negativen Monaten.

    Hab z.B. das Geburtsdatum 27.10.2005. Heute ist der 5.3.2007.
    Kriege da jetzt 2 Jahre, -8 Monate und 6 Tage raus.

    Normal müßte da ja 1 Jahr, 4 Monate und 6 Tage rauskommen.
    Wo muß man da den Code modifizieren????

  14. #13
    Herzlich willkommen!
    Registriert seit
    20.05.08
    Beiträge
    4

    AW: [Programmierung] PHP: Alter bestimmen

    Das mit den Negativen Tagen klappt. Nur wie ist das bei negativen Monaten.

    Hab z.B. das Geburtsdatum 27.10.2005. Heute ist der 5.3.2007.
    Kriege da jetzt 2 Jahre, -8 Monate und 6 Tage raus.

    Normal müßte da ja 1 Jahr, 4 Monate und 6 Tage rauskommen.
    Wo muß man da den Code modifizieren????
    Auch wenn der Thread schon ein paar Tage älter ist, würde mich das mit den negativen Monaten auch interessieren. Hat den niemand eine Lösung?

    MfG

  15. #14
    Außer Betrieb Avatar von QuHno
    Registriert seit
    15.05.02
    Ort
    "Provinz voll Leben"
    Beiträge
    8.772

    AW: [Programmierung] PHP: Alter bestimmen

    Herzlich Willkommen im Supernature-Forum!

    Quick & dirty hack:
    PHP-Code:
    //Modifikation Ende 

    if($mon 0){
    $jahr $jahr 1;
    $mon $mon 12;}

    echo 
    "<br />"
    Erste und letzte Zeile im Code sind die Zeilen zwischen denen die Änderung eingebaut werden muss ...

  16. #15
    Herzlich willkommen!
    Registriert seit
    20.05.08
    Beiträge
    4

    AW: [Programmierung] PHP: Alter bestimmen

    Das ging ja sehr schnell!
    Vielen Dank, ich werds gleich mal testen!

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [Software] PHP Designer 2005 3.0.1.1 - Programmier-Editor
    Von Gamma-Ray im Forum WWW News und Gerüchteküche
    Antworten: 3
    Letzter Beitrag: 21.03.06, 13:20
  2. Apache und PHP unter Windows
    Von FormA im Forum Netzwerke & Server
    Antworten: 1
    Letzter Beitrag: 23.07.04, 19:51
  3. [Diskussion] Ein alter Knacker
    Von Gamma-Ray im Forum Boardsofa
    Antworten: 4
    Letzter Beitrag: 21.10.03, 00:37
  4. Kostenlosen Webspace für alle - mit PHP, Perl MySQL, FTP...
    Von -=SubSys=- im Forum Programmierung & Webdesign
    Antworten: 0
    Letzter Beitrag: 26.10.02, 16:42
  5. Test: Das wahre Alter - ein Mythos?
    Von AlterKnacker im Forum Boardsofa
    Antworten: 20
    Letzter Beitrag: 03.12.01, 15:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Content Relevant URLs by vBSEO 3.6.1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53