jdtojulian()
Lernen Sie, wie die PHP-Funktion jdtojulian() eine julianische Tagesnummer in ein Datum des julianischen Kalenders umwandelt, mit Beispielen und juliantojd().
Die PHP-Funktion jdtojulian()
Die Funktion jdtojulian() wandelt eine Julianische Tagesnummer in ein Datum des Julianischen Kalenders um, das als Zeichenkette im Format Monat/Tag/Jahr zurückgegeben wird.
Es ist wichtig, die zwei Bedeutungen des Wortes „Julianisch" hier nicht zu verwechseln:
- Julianische Tagesnummer (JDC) — eine fortlaufende Zählung der Tage seit dem Mittag der Universellen Zeit am 1. Januar 4713 v. Chr. Es handelt sich um eine bloße Zahl (zum Beispiel
2459459) ohne Bezug zu einem bestimmten Kalender. In der Astronomie wird sie häufig verwendet, weil sie die Datumsarithmetik vereinfacht. - Julianischer Kalender — der von Julius Caesar im Jahr 45 v. Chr. eingeführte Kalender, der in Europa verwendet wurde, bis er ab 1582 schrittweise durch den Gregorianischen Kalender abgelöst wurde. Heute weichen die beiden Kalender um 13 Tage voneinander ab.
jdtojulian() nimmt eine Julianische Tagesnummer entgegen und gibt an, welchem Datum diese Zahl im Julianischen Kalender entspricht. Das Gegenstück jdtogregorian() tut dasselbe, gibt aber das Datum im Gregorianischen Kalender zurück.
Syntax
jdtojulian(int $julian_day): stringDie Funktion akzeptiert einen Parameter — die Julianische Tagesnummer als Integer — und gibt das entsprechende Datum des Julianischen Kalenders als "Monat/Tag/Jahr"-Zeichenkette zurück. Wenn die Eingabe 0 (eine ungültige Julianische Tagesnummer) ist, wird "0/0/0" zurückgegeben.
Eine Julianische Tagesnummer in ein Julianisches Kalenderdatum umwandeln
<?php
$jdc = 2459459;
$julianDate = jdtojulian($jdc);
echo $julianDate; // Outputs: 8/19/2021Der zurückgegebene Wert ist eine Zeichenkette, die Sie bei Bedarf in ihre einzelnen Teile aufteilen können:
<?php
[$month, $day, $year] = explode('/', jdtojulian(2459459));
echo "Year: $year, Month: $month, Day: $day";
// Outputs: Year: 2021, Month: 8, Day: 19Warum Julianisches und Gregorianisches Datum voneinander abweichen
Dieselbe Julianische Tagesnummer führt in jedem Kalender zu einer anderen Bezeichnung. Für 2459459:
<?php
echo jdtojulian(2459459); // Outputs: 8/19/2021 (Julian calendar)
echo "\n";
echo jdtogregorian(2459459); // Outputs: 9/1/2021 (Gregorian calendar)Der 13-Tage-Unterschied zwischen 8/19 und 9/1 entspricht genau dem aktuellen Versatz zwischen dem Julianischen und dem Gregorianischen Kalender — beide Zeilen beschreiben denselben Augenblick in der Zeit.
Ein Julianisches Kalenderdatum zurück in eine Julianische Tagesnummer umwandeln
Um den umgekehrten Weg zu gehen — von einem Julianischen Kalenderdatum zurück zu einer Julianischen Tagesnummer — verwenden Sie juliantojd(). Diese Funktion nimmt Monat, Tag und Jahr entgegen und gibt eine Ganzzahl zurück:
<?php
$jdc = juliantojd(8, 19, 2021);
echo $jdc; // Outputs: 2459459Da die beiden Funktionen Umkehrungen voneinander sind, liefert ein Hin-und-Rückweg das ursprüngliche Datum zurück:
<?php
echo jdtojulian(juliantojd(8, 19, 2021)); // Outputs: 8/19/2021Wann würde ich das verwenden?
Den Julianischen Kalender benötigen Sie für alltägliche Anwendungsdaten selten — für diese sollten Sie PHPs DateTime und date()-APIs bevorzugen, die im Gregorianischen Kalender arbeiten. jdtojulian() ist nützlich, wenn Sie:
- Mit historischen Aufzeichnungen arbeiten, die vor der Gregorianischen Reform von 1582 datiert sind (oder in Ländern, die sie viel später übernahmen).
- Mit astronomischen oder genealogischen Daten arbeiten, die Datumsangaben als Julianische Tagesnummern speichern.
- Zwischen Kalendersystemen konvertieren, wobei die Julianische Tagesnummer als neutraler Mittelpunkt dient — zum Beispiel
gregoriantojd()→ Integer speichern →jdtojulian().
Hinweis: Die Erweiterung
calendarmuss aktiviert sein, damit diese Funktionen verfügbar sind. Sie ist im Lieferumfang von PHP enthalten und wird bei den meisten Builds standardmäßig einkompiliert.
Fazit
Die Funktion jdtojulian() wandelt eine Julianische Tagesnummer in eine Datumszeichenkette im Julianischen Kalender um, während juliantojd() die Umkehrung durchführt. Sie spiegeln das Gregorianische Paar jdtogregorian() und gregoriantojd() wider, weshalb dieselbe Tageszahl zwei verschiedene Kalenderbezeichnungen ergibt. Weitere Details finden Sie in der offiziellen Dokumentation zu jdtojulian() und juliantojd().