Zum Inhalt springen

easter_days()

Einführung

Willkommen zu unserem Leitfaden zur Berechnung des Osterdatums mit PHP. Wir zeigen Ihnen, wie Sie das Datum für ein beliebiges Jahr bestimmen und in Ihren Projekten implementieren können. Wir werfen einen Blick auf die Geschichte von Ostern und die mathematischen Berechnungen, die der Datumsbestimmung zugrunde liegen. Am Ende dieses Leitfadens verfügen Sie über ein fundiertes Verständnis dafür, wie Sie das Osterdatum mit PHP berechnen können.

Was ist Ostern?

Ostern ist ein christlicher Feiertag, der die Auferstehung Jesu Christi von den Toten feiert. Es ist einer der wichtigsten Feiertage im christlichen Kalender und wird weltweit begangen. Ostern fällt jedes Jahr auf ein anderes Datum, und das Osterdatum wird durch eine Reihe komplexer Berechnungen bestimmt.

Geschichte von Ostern

Christen feiern Ostern seit über 2.000 Jahren. Die genauen Ursprünge des Feiertags sind nicht eindeutig geklärt, aber es wird angenommen, dass er aus heidnischen Frühlingsfeiern hervorgegangen ist. Der Name „Ostern“ wird auf das altenglische Wort „ēastre“ zurückgeführt, das ein heidnisches Fest zur Frühlings-Tagundnachtgleiche war.

In der christlichen Tradition feiert Ostern die Auferstehung Jesu Christi von den Toten. Laut der Bibel wurde Jesus am Karfreuz gekreuzigt und drei Tage später, am Ostersonntag, von den Toten auferstanden. Ostern wird am Sonntag nach dem ersten Vollmond nach der Frühlings-Tagundnachtgleiche begangen, der normalerweise zwischen dem 22. März und dem 25. April fällt.

Berechnung des Osterdatums

Das Osterdatum wird durch eine Reihe komplexer Berechnungen bestimmt, die auf den Zyklen von Mond und Sonne basieren. Diese Berechnungen wurden erstmals im Jahr 325 n. Chr. vom Konzil von Nicaea entwickelt und im Laufe der Jahrhunderte verfeinert.

Das Osterdatum wird mit der folgenden Formel berechnet:

text
a = year mod 19
b = year mod 4
c = year mod 7
d = (19 * a + 24) mod 30
e = (2 * b + 4 * c + 6 * d + 5) mod 7
f = d + e + 22

Wenn f kleiner oder gleich 31 ist, fällt Ostern auf den f. März. Wenn f größer als 31 ist, fällt Ostern auf den f - 31. April.

Hinweis: Dieser klassische Algorithmus funktioniert für die meisten Jahre, weist jedoch bekannte Randfälle auf (z. B. 1954, 1981, 2049, 2079, 2099), bei denen das Ergebnis um einen Tag abweichen kann. Für Produktivanwendungen sollten Sie eine dedizierte Kalenderbibliothek verwenden oder die vollständigen Regeln zur gregorianischen Korrektur implementieren.

Berechnung des Osterdatums mit PHP

Da wir nun die Geschichte und die Berechnungen hinter dem Osterdatum verstehen, werfen wir einen Blick darauf, wie wir PHP verwenden können, um das Osterdatum für ein beliebiges Jahr zu berechnen. Wir beginnen damit, eine PHP-Funktion zu erstellen, die ein Jahr als Argument übernimmt und das Osterdatum für dieses Jahr zurückgibt.

Die Funktion folgt diesen Schritten:

  1. Berechnen Sie die Reste a, b und c für das eingegebene Jahr.
  2. Berechnen Sie die Zwischenwerte d und e mit den Formeln für Mond- und Sonnenzyklen.
  3. Bestimmen Sie f, das den Tagesversatz ab dem 22. März darstellt.
  4. Konvertieren Sie f in Monat und Tag und formatieren Sie das Ergebnis anschließend mit DateTime.

Hier ist der PHP-Code zur Berechnung des Osterdatums:

php
<?php

function get_easter_date($year) {
  $a = $year % 19;
  $b = $year % 4;
  $c = $year % 7;
  $d = (19 * $a + 24) % 30;
  $e = (2 * $b + 4 * $c + 6 * $d + 5) % 7;
  $f = $d + $e + 22;
  if ($f <= 31) {
    $month = 3;
    $day = $f;
  } else {
    $month = 4;
    $day = $f - 31;
  }
  // Use DateTime for modern object-oriented PHP (mktime is legacy, not strictly deprecated)
  $date = new DateTime();
  $date->setDate($year, $month, $day);
  return $date->format('Y-m-d');
}

echo get_easter_date(2024); // Outputs: 2024-03-31

Die integrierte Funktion easter_days()

Der Kapiteltitle verweist auf die native PHP-Funktion easter_days(), die der Standardweg zur Berechnung von Ostern in Produktionscode ist. Diese Funktion gibt die Anzahl der Tage nach dem 21. März zurück, an denen Ostern für ein bestimmtes Jahr fällt. Sie verarbeitet automatisch alle Kalenderkorrekturen und Randfälle, wodurch manuelle Modulo-Arithmetik entfällt.

php
echo easter_days(2024); // Returns 10 (March 21 + 10 days = March 31)

Während der oben gezeigte benutzerdefinierte Algorithmus zu Lernzwecken nützlich ist, wird easter_days() für reale Anwendungen aufgrund seiner Genauigkeit, Einfachheit und der integrierten Behandlung von Schaltjahren sowie gregorianischen Kalenderanpassungen empfohlen.

Praxis

Was ist der Zweck der easter_days()-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.