(PHP 4, PHP 5, PHP 7, PHP 8)
easter_date — Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp
Diese Funktion liefert den Unix-Timestamp (in Sekunden seit 1970) zurück,
der dem Begin des Ostersonntag im durch year
spezifizierten Jahr entspricht.
Das Datum des Osterfestes wurde im Jahre 325 auf dem Konzil von Nicaea auf den ersten Sonntag nach Frühlingsvollmond, also dem Vollmond während oder direkt nach der Tagundnachtgleiche am 21. März, festgelegt. Der hier genutzte Algorithmus wurde um das Jahr 532 von Dionysius Exiguus eingeführt. Bis zum Jahr 1752 wird nach dem Julianischen Kalender ein einfacher 19jähriger Zyklus für die Bestimmung der Mondphasen benutzt. Im September 1752 übernahmen dann auch Britannien und seine Kolonien den von Clavius und Lilius vorgeschlagenen und im Oktober 1582 von Papst Gregor dem XIII. eingeführten Gregorianischen Kalender. Hierdurch wurden zwei Korrekturfaktoren eingeführt, um den Zyklus genauer abzubilden.
year
Das Jahr muss auf 32-Bit-Systemen eine Zahl zwischen 1970 und 2037 sein
und auf 64-Bit-Systemen eine Zahl zwischen 1970 und 2000000000. Wenn
nicht angegeben oder null
, wird das aktuelle Jahr gemäß der lokalen
Zeit verwendet.
mode
Ermöglicht die Berechnung des Osterdatums basierend auf dem Julianischen
Kalender, wenn auf CAL_EASTER_ALWAYS_JULIAN
gesetzt.
Siehe auch Kalender-Konstanten.
Das Osterdatum als Unix-Timestamp.
Wenn auf einem 32-bit System eine Jahreszahl vor 1970 oder nach 2037 oder auf einem 64-Bit-System eine Jahreszahl nach 2.000.000.000 angegeben wird, wird ein ValueError geworfen.
Version | Beschreibung |
---|---|
8.3.0 |
Auf 64-Bit-Systemen akzeptiert der Parameter Jahr
nun Werte innerhalb des Bereichs von 1970 bis 2000000000.
|
8.0.0 |
year ist jetzt nullbar.
|
8.0.0 | Wenn auf einem 32-bit System eine Jahreszahl vor 1970 oder nach 2037 oder auf einem 64-bit System eine Jahreszahl nach 2.000.000.000 angegeben wird, wird ein ValueError geworfen. |
Beispiel #1 easter_date()-Beispiel
<?php
echo date("M-d-Y", easter_date(1999)); // Apr-04-1999
echo date("M-d-Y", easter_date(2000)); // Apr-23-2000
echo date("M-d-Y", easter_date(2001)); // Apr-15-2001
?>
Beispiel #2 Verwendung von easter_date() mit DateTime
<?php
$timestamp = easter_date(2023);
$datetime = new \DateTime();
$datetime->setTimestamp($timestamp);
echo $datetime->format('M-d-Y'); // Apr-09-2023
?>
Hinweis:
easter_date() verlässt sich auf die Zeitfunktionen der C Bibliothek des Systems anstatt die internen Datums- und Zeitfunktionen von PHP zu verwenden. Infolgedessen verwendet easter_date() die
TZ
Umgebungsvariable um die Zeitzone zu bestimmen, in der sie arbeiten soll, anstatt PHPs default time zone zu verwenden, was unerwartetes Verhalten zur Folge haben kann, wenn diese Funktion in Verbindung mit anderen Datumsfunktionen in PHP verwendet wird.Als Workaround kann easter_days() mit DateTime und DateInterval verwendet werden, um den Beginn von Ostern in Ihrer PHP Zeitzone wie folgt zu berechnen:
<?php
function get_easter_datetime($year) {
$base = new DateTime("$year-03-21");
$days = easter_days($year);
return $base->add(new DateInterval("P{$days}D"));
}
foreach (range(2012, 2015) as $year) {
printf("Ostern %d ist am %s\n",
$year,
get_easter_datetime($year)->format('j.n.'));
}
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Ostern 2012 ist am 8.4. Ostern 2013 ist am 31.3. Ostern 2014 ist am 20.4. Ostern 2015 ist am 5.4.