Do. 05.03.2009
23:48 Uhr
#1
- Registriert seit
- 30.10.2008
- Beiträge
- 50
- Beitragswertungen

Hallo,
auf unserer HP wir das Alter falsch berechnet.
Ich denke es liegt hieran:
1 2 3 4 5 6 7 8 9 | if($row['gebdatum'] !== "0000-00-00"){
$gebdatum = date('d.m.Y',strtotime($row['gebdatum']));
$tag = date('d',strtotime($row['gebdatum']));
$monat = date('m',strtotime($row['gebdatum']));
$jahr = date('Y',strtotime($row['gebdatum']));
$jetzt = mktime(0,0,0,date("m"),date("d"),date("Y"));
$geburtstag = mktime(0,0,0,$monat,$tag,$jahr);
$alter = "(".intval(($jetzt - $geburtstag) / (3600 * 24 * 365)).")";
|
Wenn ich das richtig sehe wird hier nur die Anzahl an Tagen berechnet, ohne auf Schaltjahre zu achten.
Jemand eine Ahnung wie man das besser lösen kann?
verwendete ilchClan Version: 1.1
betroffene Homepage:
externer Link
Das Leben is zu kurz für ein langes Gesicht.
Fr. 06.03.2009
15:15 Uhr
#2
- Registriert seit
- 30.10.2008
- Beiträge
- 50
- Beitragswertungen

Ich hab es jetzt mal so versucht. Aber irgendwie ändert sich nix. Wo liegt der Fehler bei der Prüfung ob der aktuelle Tag und Monat kleiner sind als der Tag und der Monat der Geburt?
1 2 3 4 5 6 7 8 | $jetzt_j = mktime(0,date("Y"));
$jetzt_m = mktime(0,date("m"));
$jetzt_d = mktime(0,date("d"));
$geburtsjahr = mktime(0,$jahr));
$geburtsmonat = if(mktime (0,$monat));
$geburtstag = mktime (0,$tag));
$vor = ($jetzt_m < $geburtsmonat AND $jetzt_d < $geburtstag) ? (1) : (0);
$alter = "(".intval($jetzt_j - $geburtsjahr - $vor).")";
|
Das Leben is zu kurz für ein langes Gesicht.
So. 08.03.2009
20:22 Uhr
#4
- Registriert seit
- 30.10.2008
- Beiträge
- 50
- Beitragswertungen

Funktioniert hervorragend. Danke für die Hilfe Mairu.
Das Leben is zu kurz für ein langes Gesicht.