W3docs

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): string

Elle 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/2021

La 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: 19

Pourquoi 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: 2459459

Comme 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/2021

Quand 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 calendar doit ê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().

Pratique

Pratique
Quel est le rôle de la fonction jdtojulian() en PHP ?
Quel est le rôle de la fonction jdtojulian() en PHP ?
Was this page helpful?