PHPs CAL_FROM_JD () -Funktion ist eine der integrierten Kalenderkonvertierungsfunktionen in PHP. Es kann den Julian Day (JD) in ein bestimmtes Kalenderformat umwandeln. Die Syntax dieser Funktion lautet wie folgt:
<span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span> ( </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$jd</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$calendar</span></span><span> )
</span></span>$ JD : Julian Datum, das umgewandelt werden muss. Es ist eine schwimmende Nummer, die die Anzahl der Tage seit 12.00 Uhr am 1. Januar 4713 v. Chr. Repräsentiert.
$ Kalender : Gibt den konvertierten Kalendertyp an. PHP unterstützt eine Vielzahl von Kalendersystemen, darunter:
CAL_Gregorian (Gregorianer)
Cal_julian (Julianer Kalender)
CAL_FAJI (Islamischer Kalender)
Cal_Hebrew (Hebräisch)
Diese Funktion gibt ein assoziatives Array zurück, das konvertierte Datumselemente wie Jahr, Monat, Datum usw. enthält, usw.
Um besser zu verstehen, wie die Funktion cal_from_jd () verwendet wird, schauen wir uns ein bestimmtes Beispiel an. Angenommen, Sie haben ein julianisches Datum von 2459373.5 (d. H. JD am 16. Juli 2022) und Sie möchten es in ein gregorianisches Datum umwandeln.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$jd</span></span><span> = </span><span><span class="hljs-number">2459373.5</span></span><span>; </span><span><span class="hljs-comment">// Julius Tag</span></span><span>
</span><span><span class="hljs-variable">$calendar</span></span><span> = CAL_GREGORIAN; </span><span><span class="hljs-comment">// Gregorianischer Kalender</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span>(</span><span><span class="hljs-variable">$jd</span></span><span>, </span><span><span class="hljs-variable">$calendar</span></span><span>);
</span><span><span class="hljs-comment">// Ausgangsergebnis</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Jahr: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'year'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Mond: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'month'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Tag: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'day'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span> <span><span><span class="hljs-section">Jahr: 2022</span></span><span>
</span><span><span class="hljs-section">Mond: 7</span></span><span>
</span><span><span class="hljs-section">Tag: 16</span></span><span>
</span></span>In diesem Beispiel konvertiert Cal_from_jd () den Julian Day 2459373.5 am 16. Juli 2022 zum Gregorianischen Datum.
Der Julian Day (JD) ist ein schwimmender Wert, bei dem der ganzzahlige Teil die Anzahl der Tage seit Mittag am 1. Januar 4713 v. Chr. Und der Dezimalteil die Tageszeit darstellt. Zum Beispiel bedeutet eine JD von 2459373.5 am Tag Mittag, während eine JD von 2459373.25 am Tag (Mitternacht) 0:00 bedeutet. Für verschiedene Kalendersysteme wird Cal_from_jd () die Berechnung der Daten nach bestimmten Regeln anpassen.
Wenn Sie den julianischen Kalender in den Julian -Kalender umwandeln möchten, können Sie den folgenden Code verwenden:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$jd</span></span><span> = </span><span><span class="hljs-number">2459373.5</span></span><span>;
</span><span><span class="hljs-variable">$calendar</span></span><span> = CAL_JULIAN; </span><span><span class="hljs-comment">// Julianer Kalender</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span>(</span><span><span class="hljs-variable">$jd</span></span><span>, </span><span><span class="hljs-variable">$calendar</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Jahr: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'year'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Mond: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'month'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Tag: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'day'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Ausgabe:
<span><span><span class="hljs-section">Jahr: 2022</span></span><span>
</span><span><span class="hljs-section">Mond: 7</span></span><span>
</span><span><span class="hljs-section">Tag: 3</span></span><span>
</span></span>Es ist ersichtlich, dass die Daten des julianischen Kalenders und des Gregorianischen Kalenders unterschiedlich sind, da zwischen dem julischen Kalender und dem Gregorianischen Kalender Unterschiede in den Datumsberechnungen vorliegen.
Präzisionsproblem : Die Genauigkeit der Funktion cal_from_jd () beträgt nur so lange wie die Anzahl der Tage am Datum, sodass der eingehende JD -Wert normalerweise eine schwimmende Nummer ist und der fraktionelle Teil die Ausgabe des Datums nicht beeinflusst (es sei denn, Sie müssen genau oder Minuten genau sein). Wenn eine genauere Zeit benötigt wird, kann es in Kombination mit anderen Zeitverarbeitungsfunktionen implementiert werden.
Datumsbereich : Verschiedene Kalendersysteme haben unterschiedliche Datenbereiche. Beispielsweise unterscheiden sich das Startdatum und die gültige Reichweite der hebräischen und islamischen Kalender von dem des Gregorianischen Kalenders und des julianischen Kalenders. Daher sollten Sie das entsprechende Kalendersystem entsprechend Ihren Bedürfnissen auswählen.
Fehlerbehandlung : Stellen Sie sicher, dass der eingehende JD -Wert gültig ist. Wenn ein ungültiger JD übergeben wird, gibt die Funktion cal_from_jd () false zurück, sodass bei der Verwendung eine Ausnahmebehandlung erforderlich ist.