In PHP gibt es keinen Befehl um das Alter anhand eines Geburtsdatums zu errechnen, daher müssen wir uns selbst helfen: Einzige Voraussetzung ist ein gültiges Datum im Format "YYYY-MM-DD" (also Jahr-Monat-Tag). Dies ist zum Beispiel das standard Date-Format der freien Datenbank MySQL.

<?php

// Funktion deklarieren
function alter($datum)
{
    list(
$y$m$d) = explode('-'$datum);
    
$alter date('Y') - $y;
    
$monat date('m');
    if (
$monat $m or ($monat == $m and $d date('d'))) {
        
$alter--;
    }
    return 
$alter;
}

// Datum festlegen
$datum '1910-08-27';

// Funktion aufrufen
echo alter($datum);

?>

Das Beispieldatum — der 27. August 1910 — zeigt übrigens das Geburtsdatum von Agnes Gonxhe Bojaxhiu, der Friedensnobelpreisträgerin Mutter Theresa.

Vorteile dieser Variante und Alternativen

Eine der geläufigsten Alternativen für dieses Skript funktioniert folgendermassen:

Mit dieser Methode kann man das Alter von Personen welche vor dem 1. Januar 1970, 00:00:00 Uhr GMT (= Greenwich Mean Time, mittlere Greenwich-Zeit) geboren wurden nicht bestimmen. Der Grund: In PHP werden die Zeiten generell in Sekunden ab dem oben erwähnten Zeitpunkt berechnet. Der Befehl mktime() kann nicht mit negativen Werten umgehen, sondern gibt false zurück, wenn die Parameter ungültig oder "zu alt" sind.

Mit der ganz oben erklärten Methode tritt dieses Limit nicht auf, da mktime nicht verwendet wird. Ausserdem muss weniger gerechnet werden und das Alter wird somit schneller zurückgegeben. Fazit: Meine Funktion ist besser :-)