Signatur
Beschreibung
cal_from_jd() wandelt einen Julianischen Tageszähler (JD) in ein Datum des gewünschten Kalendersystems um. Der Julianische Tageszähler ist ein fortlaufender Tageszähler, der in der Astronomie und Chronologie verwendet wird und unabhängig von einem bestimmten Kalendersystem ist. Mit dieser Funktion lässt er sich in ein konkretes Datum eines der unterstützten Kalender überführen.
Unterstützte Kalender werden über die Konstanten CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH und CAL_FRENCH angegeben. Das Ergebnis ist ein assoziatives Array mit Informationen wie Tag, Monat, Jahr, Wochentag und einer Datumszeichenkette.
Die Funktion ist besonders nützlich in Kombination mit anderen Kalender-Funktionen wie cal_to_jd() oder unixtojd(), wenn Datumskonvertierungen zwischen verschiedenen Kalendersystemen durchgeführt werden sollen. Sie gehört zur Calendar-Extension, die seit PHP 4.1 standardmäßig verfügbar ist.
Das zurückgegebene Array enthält die Felder date (formatiertes Datum als Zeichenkette), month, day, year, dow (Wochentag als Zahl, 0 = Sonntag), abbrevdayname, dayname, abbrevmonth und monthname.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $julian_day Pflicht | int | Der Julianische Tageszähler (Julian Day Count), der konvertiert werden soll. Kann z. B. mit cal_to_jd() oder unixtojd() erzeugt werden. |
|
| $calendar Pflicht | int | Das Zielsystem, in das konvertiert wird. Zulässige Konstanten: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH, CAL_FRENCH. |
Rückgabewert
Gibt ein assoziatives Array mit folgenden Schlüsseln zurück:
date– Datum als Zeichenkette im FormatMonat/Tag/Jahrmonth– Monatszahlday– Tageszahlyear– Jahreszahldow– Wochentag als Integer (0 = Sonntag, 6 = Samstag)abbrevdayname– Abgekürzter Wochentagsname (englisch)dayname– Vollständiger Wochentagsname (englisch)abbrevmonth– Abgekürzter Monatsname (englisch)monthname– Vollständiger Monatsname (englisch)
Beispiele
Aktuelles Datum aus Unix-Timestamp in gregorianisches Kalenderdatum umwandeln
<?php
// Aktuellen Unix-Timestamp in Julian Day Count umwandeln
$jd = unixtojd(mktime(0, 0, 0, 6, 15, 2024));
// Julian Day Count zurück in gregorianisches Datum konvertieren
$result = cal_from_jd($jd, CAL_GREGORIAN);
echo "Datum: " . $result['date'] . "\n";
echo "Tag: " . $result['day'] . "\n";
echo "Monat: " . $result['month'] . "\n";
echo "Jahr: " . $result['year'] . "\n";
echo "Wochentag: " . $result['dayname'] . "\n";
Gregorianisches Datum in jüdisches Datum umrechnen
<?php
// Gregorianisches Datum -> Julian Day Count
$jd = cal_to_jd(CAL_GREGORIAN, 10, 7, 2023);
// Julian Day Count -> Jüdisches Datum
$jewish = cal_from_jd($jd, CAL_JEWISH);
echo "Jüdisches Datum: " . $jewish['date'] . "\n";
echo "Monat (jüdisch): " . $jewish['monthname'] . "\n";
echo "Jahr (jüdisch): " . $jewish['year'] . "\n";
Unterschied zwischen Gregorianischem und Julianischem Kalender zeigen
<?php
// Ein historisches Datum im Julianischen Kalender
$jd = cal_to_jd(CAL_JULIAN, 2, 18, 1700);
$gregorian = cal_from_jd($jd, CAL_GREGORIAN);
$julian = cal_from_jd($jd, CAL_JULIAN);
echo "Julianisch: " . $julian['date'] . "\n";
echo "Gregorianisch: " . $gregorian['date'] . "\n";
// Wichtig · Fallstricke
Erweiterung erforderlich: cal_from_jd() benötigt die Calendar-Extension (ext/calendar). Diese ist unter Unix/Linux standardmäßig eingebunden; unter Windows muss extension=calendar in der php.ini aktiviert sein.
Englische Ausgabe: Die Felder dayname, abbrevdayname, monthname und abbrevmonth werden immer auf Englisch ausgegeben, unabhängig von der Locale-Einstellung.
Gültigkeitsbereiche: Jeder Kalender hat einen begrenzten gültigen Datumsbereich. Für den Französischen Revolutionskalender (CAL_FRENCH) gelten z. B. nur Daten zwischen 1792 und 1806. Bei ungültigen JD-Werten außerhalb des Gültigkeitsbereichs können fehlerhafte oder leere Ergebnisse zurückgegeben werden.