Hallo Sven,
$alter = intval(($jetzt - $geburtstag) / (3600 * 24 * 365));
Scheint auch soweit zu funktionieren. Aber er berechnet 4 Tage Falsch! Z.b. Gebe ich das G-Datum ein: 31.01.1995 zeigt er 11 an was korrekt ist. Gebe ich 01.02.1995 ein zeigt er immer noch 11 an. Was eigendlich 10 Jahre ist. Erst ab 04.02.1995 zeigt er 10 Jahre an.
Woran liegt das?
Du hast vergessen, dass es Schaltjahre gibt.
Wie behebt man das?
Erste Möglichkeit: Durch eine Kalenderreform.
Sollte dies nicht möglich sein, so versuche doch Rouvens Vorschlag umzusetzen :-)
Weitere Möglichkeit:
Vergleiche die Jahresangaben, die Monatsangaben und ggf. die Tagesangaben miteinander und komme so zum richtigen Ergebnis. Beachte dabei die richtige Behandlung des 29. Februars.
Freundliche Grüße
Vinzenz