Blog - webdesign, javascript, jquery, html, css, php

PHP: Alter einfach ausrechnen

In PHP gibt es nicht wirklich eine Funktion um das Alter von z. B. einer Person auszugeben. Nach längerem überlegen bin ich auf eine interessante Methode gekommen. Voraussetzung war das es völlig ohne Timestamp auskommt, da der Timestamp sehr begrenzt ist. d.H. er kann keine Daten vor dem 01.01.1970 ausgeben. Da es aber auch Menschen bzw. Ereignisse gibt die älter als 38 Jahre sind und wir nicht mit negativen Timestamps arbeiten wollen musste eine andere Methode gefunden werden.

Viele würden jetzt einfach diese Methode nutzen:

2008 ( Aktuelles Jahr ) - 1982 ( Geburtsjahr ) = 26 ( Alter )

Ein Problem bekommt man nur falls man den Monat auch beachten will/muss. Nun zum Kerninhalt meiner Methode: Nehmen wir z.B. das Datum 12.06.1982. Wie man das Alter ohne Berücksichtigung des Monats ausrechnet haben wir gerade geklärt aber um unser Problem zu lösen machen wir aus dem Monat und dem Tag eine neue Zahl. d.h in unserem Beispiel 0612. Aber wieso machen wir das? Es entstehen somit die Zahlen von 0101 bis max. 1231. Wir können so die Daten einfach vergleichen. Nochmal die aktualisierte Rechnung:

07.04.2008 ( Aktuelles Jahr ) - 15.10.1982 ( Geburtsjahr ) = 26 ( Alter )

da 0407 kleiner als 1015 ist wird von dem Alter einfach ein Jahr abgezogen.
Nun setzen wir das ganze mal in PHP um:


$ckage = explode("-",$row["birthday"]); //das Datum wird mit explode anhand von "-" in ein Array zerlegt
$ageyear = date("Y")-$ckage[0]; //Alter in Jahren ausrechnen
$ckage = $ckage[1].$ckage[2]; //unsere Zahl aus dem Geburtstag
$ckage2 = date("d").date("m"); //unsere Zahl anhand des aktuellem Datum
//wir vergleichen die 2 Zahlen und falls die Zahl aus dem Geburtstag größer als die Zahl des aktuellem Datums ist wird von dem Alter ein Jahr abgezogen
if ( $ckage > $ckage2 ) {
$ageyear--;
}


So einfach kann man das Alter ausrechnen. Je nach Format des Datums muss das explode einfach angepasst werden. Ich könnte es natürlich auch in eine nette Funktion schreiben der man nur das Datum und den Trennungsstring ( in unserem Fall "-" ) geben muss um das Datum zu erhalten aber ich will ja nicht den ganzen Spaß vorneweg nehmen.

  • Veröffentlicht:
  • 02.04.2008
  • Author:
  • Mathias Schübel
  • Permalink:
  • http://www.schuebel-webdesign.de/blog/3
zurück zum Blog