PHP Alter aus: Geburtstag / Geburtsdatum errechnen
Mit diesem PHP Code kannst du ganz einfach das aktuelle Alter anhand des Geburtstags / Geburtsdatum herausfinden:
$geburtstag = '1978-01-01';
$_age = floor((time() - strtotime($geburtstag)) / 31556926);
echo $_age;
Dieser PHP-Code berechnet das Alter einer Person basierend auf ihrem Geburtsdatum. Lass mich den Code für dich erklären:
1. `$geburtstag = ‘1978-01-01’;`
In dieser Zeile wird das Geburtsdatum der Person in der Variablen `$geburtstag` im Format “Y-m-d” (Jahr-Monat-Tag) gespeichert. Zum Beispiel: “1978-01-01”.
2. `$_age = floor((time() – strtotime($geburtstag)) / 31556926);`
Hier wird das Alter der Person berechnet. Dazu wird zuerst das aktuelle Datum und die aktuelle Uhrzeit mit `time()` als Zeitstempel in Sekunden abgerufen. Anschließend wird das Geburtsdatum in einen Zeitstempel umgewandelt, indem `strtotime($geburtstag)` verwendet wird.
Die Differenz zwischen dem aktuellen Zeitstempel und dem Geburtstagszeitstempel wird berechnet. Diese Differenz entspricht der Anzahl der Sekunden zwischen dem Geburtsdatum und dem aktuellen Datum und der aktuellen Uhrzeit.
Da ein Jahr nicht immer genau 365 Tage hat (es gibt Schaltjahre), wird die Differenz durch die durchschnittliche Anzahl von Sekunden pro Jahr (31556926 Sekunden) geteilt, um das ungefähre Alter der Person zu berechnen.
Die Funktion `floor()` wird verwendet, um das Ergebnis der Division auf die nächstkleinere Ganzzahl abzurunden, um ein genaues Alter zu erhalten, ohne Dezimalstellen.
3. `echo $_age;`
Schließlich wird das berechnete Alter der Person in Jahren mit `echo` ausgegeben.
Zusammengefasst berechnet dieser Code das ungefähre Alter einer Person anhand ihres Geburtsdatums und gibt das Alter in Jahren aus. Es ist zu beachten, dass dies nur eine ungefähre Berechnung ist und die Ergebnisse je nach Schaltjahren und Schaltsekunden leicht variieren können. Für genauere Altersberechnungen unter Berücksichtigung von Schaltjahren und Tagen bis zum Geburtstag müssten speziellere Algorithmen verwendet werden.