Signatur
Beschreibung
cal_to_jd() wandelt ein Datum aus einem der von PHP unterstützten Kalendersysteme in die entsprechende Julianische Tagesnummer (Julian Day Number, JDN) um. Die Julianische Tagesnummer ist eine fortlaufende Ganzzahl, die ab dem 1. Januar 4713 v. Chr. (Julianischer Kalender) zählt und in der Astronomie sowie in kalenderübergreifenden Berechnungen weit verbreitet ist.
Der Kalender wird über eine der Konstanten CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH oder CAL_FRENCH angegeben. Das Ergebnis lässt sich anschließend mit Funktionen wie jdtogregorian(), jdtojulian() oder jdtojewish() in andere Kalenderformate umrechnen, was Konvertierungen zwischen beliebigen Kalendern ermöglicht.
Diese Funktion ist besonders nützlich, wenn man Datumsangaben aus verschiedenen kulturellen oder historischen Quellen vergleichen oder umrechnen möchte. Sie gehört zur Calendar-Erweiterung von PHP, die standardmäßig eingebunden, aber nicht immer auf allen Plattformen verfügbar ist.
CAL_GREGORIAN– Gregorianischer Kalender (Standard im Westen)CAL_JULIAN– Julianischer Kalender (historisch)CAL_JEWISH– Jüdischer Kalender (Hebräisch)CAL_FRENCH– Französischer Republikanischer Kalender
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $calendar Pflicht | int | Die Kalenderkonstante, die angibt, in welchem Kalenderformat das Eingangsdatum vorliegt. Erlaubte Werte: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH, CAL_FRENCH. |
|
| $month Pflicht | int | Der Monat des Datums als Ganzzahl (1–12 für die meisten Kalender). | |
| $day Pflicht | int | Der Tag des Datums als Ganzzahl. | |
| $year Pflicht | int | Das Jahr des Datums als Ganzzahl. Negative Werte repräsentieren Jahre vor Christi Geburt (v. Chr.). |
Rückgabewert
0 zurückgegeben werden.Beispiele
Gregorianisches Datum in Julianische Tagesnummer umrechnen
<?php
// 1. Januar 2024 im gregorianischen Kalender
$jd = cal_to_jd(CAL_GREGORIAN, 1, 1, 2024);
echo "Julianische Tagesnummer: " . $jd . PHP_EOL;
// Rückumwandlung zur Kontrolle
echo "Zurück zu Gregorianisch: " . jdtogregorian($jd) . PHP_EOL;
?>
Konvertierung vom Jüdischen Kalender in den Gregorianischen Kalender
<?php
// 15. Tischri 5784 (Jüdisch) umrechnen
$jd = cal_to_jd(CAL_JEWISH, 1, 15, 5784);
echo "Julianische Tagesnummer: " . $jd . PHP_EOL;
// In Gregorianisch umwandeln
$gregorianisch = jdtogregorian($jd);
echo "Gregorianisches Datum: " . $gregorianisch . PHP_EOL;
?>
Kalenderübergreifender Vergleich zweier Daten
<?php
// Vergleich: Steht ein julianisches Datum vor einem gregorianischen?
$jd_julian = cal_to_jd(CAL_JULIAN, 12, 25, 2023);
$jd_gregorian = cal_to_jd(CAL_GREGORIAN, 1, 7, 2024);
if ($jd_julian === $jd_gregorian) {
echo "Beide Daten bezeichnen denselben Tag." . PHP_EOL;
} else {
echo "Die Tage sind unterschiedlich." . PHP_EOL;
}
?>
// Wichtig · Fallstricke
Verfügbarkeit: Die Calendar-Erweiterung (ext/calendar) ist zwar standardmäßig einkompiliert, aber auf manchen Systemen (z. B. bei eigens kompilierten PHP-Binaries) möglicherweise nicht aktiviert. Prüfe mit extension_loaded('calendar'), ob sie verfügbar ist.
Gültige Datumsbereiche: Jeder Kalender hat einen eingeschränkten gültigen Bereich. Für CAL_FRENCH sind beispielsweise nur Daten zwischen September 1792 und September 1806 gültig. Ungültige oder weit außerhalb liegende Daten können zu falschen oder unerwarteten Ergebnissen führen, ohne dass eine Fehlermeldung ausgegeben wird.
Julianische Tagesnummer vs. Julianischer Kalender: Die Julianische Tagesnummer (Julian Day Number) ist nicht zu verwechseln mit dem Julianischen Kalender (CAL_JULIAN). Erstere ist ein universelles, astronomisches Zählsystem für Tage.