cal_from_jd()
La fonction cal_from_jd() de PHP convertit un numéro de jour julien en date de calendrier. Découvrez sa syntaxe, ses paramètres et des exemples.
La fonction PHP cal_from_jd()
La fonction cal_from_jd() convertit un numéro de jour julien (un entier unique) en date dans le calendrier de votre choix — grégorien, julien, juif ou républicain français. Elle renvoie un array associatif contenant l'année, le mois, le jour et plusieurs chaînes formatées pratiques (nom du jour, nom du mois, jour de la semaine).
Cette page explique ce qu'est un numéro de jour julien, comment fonctionne cal_from_jd(), chaque clé de l'array qu'elle renvoie, et en quoi elle diffère des autres fonctions de calendrier de PHP. L'extension calendar doit être activée pour que ces fonctions soient disponibles.
Syntaxe
cal_from_jd(int $julian_day, int $calendar): array$julian_day— le numéro de jour julien à convertir. Il s'agit d'un entier ; un flottant est tronqué.$calendar— dans quel calendrier effectuer la conversion. Utilisez l'une des constantes ci-dessous.
| Constante de calendrier | Calendrier |
|---|---|
CAL_GREGORIAN | Grégorien (le calendrier civil courant) |
CAL_JULIAN | Julien |
CAL_JEWISH | Juif |
CAL_FRENCH | Républicain français |
La fonction renvoie toujours un array — il n'y a pas de valeur de retour en cas d'échec pour une entrée entière valide.
Qu'est-ce qu'un numéro de jour julien ?
Un numéro de jour julien (JDC) est un décompte continu de jours entiers à partir de midi UTC le 1er janvier 4713 av. J.-C. dans le calendrier julien proleptique. Comme il s'agit d'un entier croissant unique sans mois ni règles d'années bissextiles, il est idéal en tant que pivot neutre lors de la conversion entre systèmes calendaires : on convertit n'importe quelle date de calendrier en JDC, puis ce JDC dans le calendrier cible.
L'astronomie, le logiciel et la recherche historique l'utilisent tous pour exactement cette raison — l'arithmétique de dates sur un simple entier est simple et non ambiguë.
Ne confondez pas le numéro de jour julien avec le calendrier julien. Le numéro de jour est simplement un nombre ; le calendrier julien est l'ancien calendrier que le pape Grégoire XIII a réformé en octobre 1582 pour créer le calendrier grégorien que nous utilisons aujourd'hui.
L'array renvoyé par cal_from_jd()
Pour un numéro de jour julien donné, cal_from_jd() renvoie un array associatif avec ces clés :
| Clé | Description |
|---|---|
date | La date sous forme de chaîne mois/jour/année |
month | Numéro du mois (1–12 pour le calendrier grégorien) |
day | Jour du mois |
year | Année |
dow | Jour de la semaine sous forme de nombre (0 = dimanche) |
abbrevdayname | Nom de jour abrégé (ex. Mon) |
dayname | Nom de jour complet (ex. Monday) |
abbrevmonth | Nom de mois abrégé (ex. Jan) |
monthname | Nom de mois complet (ex. January) |
Exemple de base
Convertir un numéro de jour julien en date grégorienne et lire les composants :
<?php
$jd = gregoriantojd(3, 22, 2021); // JDC for March 22, 2021
$date = cal_from_jd($jd, CAL_GREGORIAN);
echo "Date string: " . $date['date'] . "\n";
echo "Year: " . $date['year'] . "\n";
echo "Month: " . $date['monthname'] . "\n";
echo "Day: " . $date['day'] . "\n";
echo "Weekday: " . $date['dayname'] . "\n";
?>Ceci affiche :
Date string: 3/22/2021
Year: 2021
Month: March
Day: 22
Weekday: MondayInspecter l'array complet
Si vous n'êtes pas sûr des clés dont vous avez besoin, affichez la valeur de retour complète :
<?php
$jd = gregoriantojd(12, 25, 2021); // Christmas 2021
print_r(cal_from_jd($jd, CAL_GREGORIAN));
?>Résultat :
Array
(
[date] => 12/25/2021
[month] => 12
[day] => 25
[year] => 2021
[dow] => 6
[abbrevdayname] => Sat
[dayname] => Saturday
[abbrevmonth] => Dec
[monthname] => December
)Erreurs courantes
- Un entier, pas un flottant avec
.5. Contrairement au Date julien astronomique,cal_from_jd()attend un entier de jour entier. Passer un flottant tronque simplement la partie fractionnaire. - L'extension
calendardoit être chargée. Si vous obtenez "Call to undefined function cal_from_jd()", activez l'extensioncalendardans votre compilation PHP. - Choisissez la constante de calendrier correspondante. Le même JDC produit des valeurs
année/mois/jourdifférentes pourCAL_GREGORIANpar rapport àCAL_JULIAN; passez toujours la constante que vous souhaitez réellement utiliser.
Fonctions associées
cal_to_jd()— l'inverse : convertir une date de calendrier en numéro de jour julien.gregoriantojd()— obtenir un numéro de jour julien à partir d'une date grégorienne.jdtogregorian()— convertir un numéro de jour julien en chaîne de date grégorienne.cal_info()— lister les noms de mois/jour et autres métadonnées d'un calendrier.jddayofweek()— obtenir le jour de la semaine pour un numéro de jour julien.
Conclusion
cal_from_jd() transforme un numéro de jour julien en un array riche de composants de date pour l'un des quatre calendriers pris en charge par PHP. Combinée avec cal_to_jd() (ou gregoriantojd()), elle permet de convertir des dates entre systèmes calendaires en passant par un entier unique — le numéro de jour julien — comme intermédiaire neutre.