jdtojulian()
Apprenez comment la fonction PHP jdtojulian() convertit un numéro de jour julien en date du calendrier julien, avec des exemples et la fonction inverse juliantojd().
La fonction PHP jdtojulian()
La fonction jdtojulian() convertit un numéro de jour julien en une date du calendrier julien, retournée sous forme de chaîne au format mois/jour/année.
Il est important de ne pas confondre les deux significations du mot « julien » ici :
- Numéro de jour julien (JDC) — un décompte continu de jours depuis midi en Temps Universel le 1er janvier 4713 av. J.-C. Il s'agit simplement d'un nombre (par exemple,
2459459) et n'a rien à voir avec un calendrier particulier. Il est largement utilisé en astronomie car il simplifie l'arithmétique des dates. - Calendrier julien — le calendrier introduit par Jules César en 45 av. J.-C., utilisé en Europe jusqu'à ce qu'il soit progressivement remplacé par le calendrier grégorien à partir de 1582. Aujourd'hui, les deux calendriers diffèrent de 13 jours.
jdtojulian() prend un numéro de jour julien et indique à quelle date ce numéro correspond dans le calendrier julien. Sa fonction homologue, jdtogregorian(), fait la même chose mais retourne la date dans le calendrier grégorien.
Syntaxe
jdtojulian(int $julian_day): stringElle accepte un paramètre — le numéro de jour julien en tant qu'entier — et retourne la date correspondante du calendrier julien sous forme de chaîne "mois/jour/année". Si l'entrée est 0 (un jour julien invalide), elle retourne "0/0/0".
Convertir un numéro de jour julien en date du calendrier julien
<?php
$jdc = 2459459;
$julianDate = jdtojulian($jdc);
echo $julianDate; // Outputs: 8/19/2021La valeur retournée est une chaîne, vous pouvez donc la décomposer quand vous avez besoin des parties individuelles :
<?php
[$month, $day, $year] = explode('/', jdtojulian(2459459));
echo "Year: $year, Month: $month, Day: $day";
// Outputs: Year: 2021, Month: 8, Day: 19Pourquoi les dates juliennes et grégoriennes diffèrent
Le même numéro de jour julien correspond à un libellé différent dans chaque calendrier. Pour 2459459 :
<?php
echo jdtojulian(2459459); // Outputs: 8/19/2021 (Julian calendar)
echo "\n";
echo jdtogregorian(2459459); // Outputs: 9/1/2021 (Gregorian calendar)L'écart de 13 jours entre 8/19 et 9/1 est exactement le décalage actuel entre les calendriers julien et grégorien — les deux lignes décrivent le même instant dans le temps.
Convertir une date du calendrier julien en numéro de jour julien
Pour effectuer l'opération inverse — d'une date du calendrier julien vers un numéro de jour julien — utilisez juliantojd(). Elle prend le mois, le jour et l'année et retourne un entier :
<?php
$jdc = juliantojd(8, 19, 2021);
echo $jdc; // Outputs: 2459459Comme les deux fonctions sont inverses l'une de l'autre, un aller-retour retourne la date d'origine :
<?php
echo jdtojulian(juliantojd(8, 19, 2021)); // Outputs: 8/19/2021Quand utiliser cette fonction ?
Vous avez rarement besoin du calendrier julien pour les dates d'application courantes — pour celles-ci, préférez les API PHP DateTime et date(), qui fonctionnent avec le calendrier grégorien. jdtojulian() est utile lorsque vous :
- Travaillez avec des archives historiques datées avant la réforme grégorienne de 1582 (ou dans des pays qui l'ont adoptée bien plus tard).
- Interfacez avec des données astronomiques ou généalogiques qui stockent les dates sous forme de numéros de jour julien.
- Convertissez entre des systèmes calendaires où le numéro de jour julien agit comme un pivot neutre — par exemple,
gregoriantojd()→ stocker l'entier →jdtojulian().
Remarque : L'extension
calendardoit être activée pour que ces fonctions soient disponibles. Elle est fournie avec PHP et compilée par défaut dans la plupart des builds.
Conclusion
La fonction jdtojulian() convertit un numéro de jour julien en chaîne de date du calendrier julien, tandis que juliantojd() effectue l'opération inverse. Elles sont le miroir de la paire grégorienne, jdtogregorian() et gregoriantojd(), c'est pourquoi le même numéro de jour produit deux libellés calendaires différents. Pour tous les détails, consultez la documentation officielle jdtojulian() et juliantojd().