Mailinglisten-Archive |
> -----Original Message----- > From: php-admin_(at)_php-center.de > [mailto:php-admin_(at)_php-center.de]On Behalf > Of Christopher Nehls > Sent: Thursday, September 28, 2000 3:18 PM > To: php_(at)_php-center.de > Subject: [php] Alter berechnen > > Gibt es eine Funktion, dass Alter von Personen (Also die Differenz > zwischen heute und Geburtsdatum) zu berechnen? > Ich habe das Geburtsdatum in der Form 1977-04-27 (also > YYYY-MM-TT) vorliegen. Wenn ich direkt vom Tagesdatum > das Geburtsdatum abziehe, bekomme ich zwar die Differenz in > Jahren, jedoch wird dabei nur die jahreszahl berücksichtigt, nicht > aber, ob der Geburtstag im laufenden Jahr schon war. > Versuch mal dieses schoene Stueck Code, das ich fuer sowas geschrieben habe. <?php $kaufdat = "18.2.99"; $erstzulassung = "19.2.96"; $kaufen = explode(".", $kaufdat); $zulassen = explode(".", $erstzulassung); $stichtag = array($zulassen[0], $zulassen[1], $kaufen[2]); if((gmmktime(12, 0, 0, $kaufen[1], $kaufen[0], $kaufen[2]) - gmmktime(12, 0, 0, $stichtag[1], $stichtag[0], $stichtag[2])) < 0) $stichtag = array($zulassen[0], $zulassen[1], ($kaufen[2]-1)); echo date("Y", gmmktime(12, 0, 0, $stichtag[1], $stichtag[0], $stichtag[2]))-date("Y", gmmktime(12, 0, 0, $zulassen[1], $zulassen[0], $zulassen[2])); echo $alter."<br>"; echo $stichtag[0].".".$stichtag[1].".".$stichtag[2]; ?> Hier noch der Kommentar, den ich geschrieben habe, als ich das Stueck das letzte Mal gepostet habe: ---snip--- Du nimmst das sagen wir mal Geburtsdatum, z.B. 10.7.1977 Das aktuelle Datum ist ohne Zweifel der 8.9.2000. Nun schaust du nach, ob Tag und Monat des Geburtsdatums quasi in diesem Jahr existierten. Du gehst also zum letzten Stichtag, an dem sich das Alter geändert hat, und schaust nach, wie die Differenz in Jahren aussieht und schon hast du dein Alter. Vorher musst natuerlich noch ueberpruefen, ob der letzte Stichtag nicht zufällig nach dem heutigen Datum liegt. Dies waere der Fall, wenn das Geburtstdatum wegen mir der 10.9.1977 wäre. Ist das der Fall, ziehst du vom Jahr eins ab und schon hast du den letzten Stichtag. Funktioniert wunderbar. Wenn jemand Verbesserungsvorschläge hat, sind sie gern willkommen ;) ---snip--- Mit freundlichen Gruessen, -- Mathias Meyer mediaworx berlin AG Fon (0 30) 2 75 80 - 24 8 Fax (0 30) 2 75 80 - 20 0
php::bar PHP Wiki - Listenarchive