phpbar.de logo

Mailinglisten-Archive

[php] Alter berechnen

[php] Alter berechnen

Mathias Meyer Meyer_(at)_mediaworx.com
Fri, 29 Sep 2000 14:57:21 +0200


> -----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