Signatur
Beschreibung
jdtogregorian() konvertiert eine julianische Tageszahl (Julian Day Number, JDN) in das entsprechende gregorianische Datum. Das Ergebnis wird als Zeichenkette im Format MM/TT/JJJJ zurückgegeben. Die julianische Tageszahl ist eine fortlaufende Tagesanzahl, die in der Astronomie und Kalenderrechnung eingesetzt wird und ab dem 1. Januar 4713 v. Chr. (julianisch) gezählt wird.
Diese Funktion gehört zur PHP-Kalender-Erweiterung (calendar) und ist besonders nützlich, wenn zwischen verschiedenen Kalendersystemen konvertiert werden soll. Eine typische Anwendung ist die Umrechnung gregorianischer Daten über das julianische Tageszahlen-System als gemeinsames Zwischenformat, etwa beim Wechsel zwischen gregorianischem, julianischem oder hebräischem Kalender.
Um zuerst ein gregorianisches Datum in eine JDN umzuwandeln, kann gregoriantojd() verwendet werden. Das Pendant für den julianischen Kalender ist jdtojulian(). Die Funktion benötigt die PHP-Erweiterung calendar, die in den meisten Standard-Installationen bereits enthalten ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $julian_day_count Pflicht | int | Die julianische Tageszahl (Julian Day Number), die in ein gregorianisches Datum umgewandelt werden soll. Gültige Werte liegen typischerweise zwischen 1 (entspricht dem 24. November 4714 v. Chr. gregorianisch) und weit in die Zukunft. |
Rückgabewert
MM/TT/JJJJ zurück, z. B. "06/23/2024". Bei ungültiger oder zu kleiner Tageszahl (z. B. 0) wird ein leerer String zurückgegeben.Beispiele
Julianische Tageszahl in gregorianisches Datum umwandeln
<?php
// Julian Day Number 2460484 entspricht dem 23. Juni 2024
$jdn = 2460484;
$datum = jdtogregorian($jdn);
echo $datum; // Ausgabe: 06/23/2024
?>
Hin- und Rückumwandlung: Gregorianisch → JDN → Gregorianisch
<?php
// Heutiges Datum in JDN umwandeln und wieder zurückkonvertieren
$monat = 1;
$tag = 1;
$jahr = 2000;
$jdn = gregoriantojd($monat, $tag, $jahr);
echo "JDN für 01/01/2000: " . $jdn . PHP_EOL;
$datum = jdtogregorian($jdn);
echo "Zurückgewandelt: " . $datum . PHP_EOL;
// Ausgabe in einzelne Teile zerlegen
[$m, $d, $y] = explode('/', $datum);
echo "Tag: $d, Monat: $m, Jahr: $y" . PHP_EOL;
?>
Kalenderkonvertierung: Hebräisch → Gregorianisch über JDN
<?php
// Hebräisches Datum 5784/7/1 in gregorianisches Datum umwandeln
// Hebräischer Monat 7 = Tischri, Jahr 5784
$jdn = jewishtojd(7, 1, 5784);
$gregorianisch = jdtogregorian($jdn);
echo "Hebräisch 5784/7/1 = Gregorianisch: " . $gregorianisch . PHP_EOL;
?>
// Wichtig · Fallstricke
Kalender-Erweiterung erforderlich: Die Funktion setzt die PHP-Erweiterung calendar voraus. Unter Linux-Systemen kann es nötig sein, diese explizit zu aktivieren (--enable-calendar beim Kompilieren oder entsprechendes Paket installieren). In Windows-PHP ist die Erweiterung standardmäßig aktiv.
Format beachten: Das Rückgabeformat ist immer MM/TT/JJJJ (amerikanisches Format). Für andere Datumsformate muss die Zeichenkette mit explode() oder DateTime::createFromFormat() weiterverarbeitet werden.
Wertebereich: Bei Übergabe von 0 oder negativen Werten gibt die Funktion einen leeren String zurück. Der minimale sinnvolle Wert ist 1.