La fonction CAL_FROM_JD () de PHP est l'une des fonctions de conversion de calendrier intégrées dans PHP. Il peut convertir Julian Day (JD) en un format de calendrier spécifié. La syntaxe de cette fonction est la suivante:
<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 : date julienne qui doit être convertie. Il s'agit d'un nombre flottant représentant le nombre de jours depuis midi le 1er janvier 4713 avant JC.
$ Calendrier : Spécifie le type de calendrier converti. PHP prend en charge une variété de systèmes de calendrier, notamment:
CAL_GREGORIAN (Gregorian)
CAL_JULIAN (Calendrier Julian)
CAL_FAJI (Calendrier islamique)
Cal_hebrew (hébreu)
Cette fonction renvoie un tableau associatif contenant des éléments de date convertis, tels que l'année, le mois, la date, etc.
Pour mieux comprendre comment utiliser la fonction CAL_FROM_JD () , regardons un exemple spécifique. Supposons que vous ayez une date julienne de 2459373.5 (c'est-à-dire JD le 16 juillet 2022) et que vous souhaitez la convertir en date grégorienne.
<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 Day</span></span><span>
</span><span><span class="hljs-variable">$calendar</span></span><span> = CAL_GREGORIAN; </span><span><span class="hljs-comment">// calendrier grégorien</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">// Résultat de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Année: "</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">"lune: "</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">"jour: "</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">Année: 2022</span></span><span>
</span><span><span class="hljs-section">lune: 7</span></span><span>
</span><span><span class="hljs-section">jour: 16</span></span><span>
</span></span>Dans cet exemple, CAL_FROM_JD () convertit Julian Day 2459373.5 à la date grégorienne le 16 juillet 2022.
Julian Day (JD) est une valeur flottante, où la partie entière représente le nombre de jours depuis midi le 1er janvier 4713 avant JC, et la partie décimale représente l'heure de la journée. Par exemple, un JD de 2459373.5 signifie midi le jour, tandis qu'un JD de 2459373.25 signifie 0h00 le jour (minuit). Pour différents systèmes de calendrier, CAL_FROM_JD () ajustera le calcul des dates en fonction de règles spécifiques.
Si vous souhaitez convertir Julian Calendar en Julian Calendar, vous pouvez utiliser le code suivant:
<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">// calendrier julien</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">"Année: "</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">"lune: "</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">"jour: "</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>Sortir:
<span><span><span class="hljs-section">Année: 2022</span></span><span>
</span><span><span class="hljs-section">lune: 7</span></span><span>
</span><span><span class="hljs-section">jour: 3</span></span><span>
</span></span>On peut voir que les dates du calendrier julien et du calendrier grégorien sont différentes car il existe des différences dans les calculs de date entre le calendrier julien et le calendrier grégorien.
Problème de précision : La précision de la fonction CAL_FROM_JD () n'est que tant que le nombre de jours à la date, de sorte que la valeur JD entrante est généralement un nombre flottant, et la partie fractionnaire n'affecte pas la sortie de la date (sauf si vous devez être exact à quelques heures ou minutes). Si un temps plus précis est nécessaire, il peut être implémenté en combinaison avec d'autres fonctions de traitement du temps.
Plage de dates : différents systèmes de calendrier ont des gammes de dates différentes. Par exemple, la date de début et la gamme valide des calendriers hébreux et islamiques diffèrent de celle du calendrier grégorien et du calendrier julien, vous devez donc choisir le système de calendrier approprié en fonction de vos besoins.
Gestion des erreurs : assurez-vous que la valeur JD entrante est valide. Si une JD non valide est transmise, la fonction CAL_FROM_JD () renvoie False , donc une gestion des exceptions est requise lors de l'utilisation.