gregoriantojd()
Le calendrier grégorien, aussi appelé calendrier occidental ou chrétien, est un calendrier solaire introduit en 1582 par le pape Grégoire XIII.
Introduction
La fonction PHP gregoriantojd() convertit une date du calendrier grégorien en un numéro de jour julien — un entier unique qui représente une date en comptant les jours écoulés depuis un point de départ fixe. Cette page explique la signification de ces termes, présente la signature de la fonction et ses valeurs de retour, parcourt un exemple fonctionnel et propose des liens vers les fonctions inverses et les fonctions de calendrier associées.
gregoriantojd() fait partie de l'extension Calendrier intégrée à PHP. Elle n'est pas dépréciée, mais la plupart des projets modernes n'ont besoin des numéros de jour juliens que pour l'astronomie, l'interopérabilité avec des données scientifiques, ou la conversion entre systèmes de calendrier. Pour l'arithmétique et le formatage de dates au quotidien, privilégiez la classe DateTime.
Histoire du calendrier grégorien
Le calendrier grégorien a été introduit pour corriger les erreurs du calendrier julien. Ce dernier reposait sur l'idée qu'une année durait exactement 365,25 jours. Cependant, cette approximation n'était pas tout à fait exacte, et le calendrier s'est progressivement désynchronisé avec l'année solaire. Au moment de l'introduction du calendrier grégorien, le calendrier julien accusait un retard de 10 jours.
Le calendrier grégorien a résolu ce problème en introduisant un nouveau système de calcul des années bissextiles. Dans le calendrier grégorien, une année est bissextile si elle est divisible par 4, mais pas par 100, sauf si elle est également divisible par 400. Ainsi, les années 1700, 1800 et 1900 ne sont pas des années bissextiles, mais 1600 et 2000 le sont.
Syntaxe
gregoriantojd(int $month, int $day, int $year): intLa fonction prend trois arguments entiers dans l'ordre mois, jour, année — notez que le mois vient en premier, pas le jour :
$month— le mois, de1(janvier) à12(décembre).$day— le jour du mois, de1à31.$year— l'année. La plage valide est de-4714à9999. L'année0n'est pas valide.
La fonction retourne le numéro de jour julien sous forme d'entier, ou 0 si la date est hors plage.
Qu'est-ce qu'un numéro de jour julien ?
Un numéro de jour julien est une façon de représenter n'importe quelle date du calendrier sous la forme d'un entier unique et toujours croissant. Le comptage commence à partir du midi du 1er janvier 4713 av. J.-C. (dans le calendrier julien proleptique). Puisque chaque date devient un seul nombre, il est possible de trouver le nombre de jours entre deux dates par simple soustraction, indépendamment des mois, des années bissextiles ou des frontières de calendrier — c'est précisément pourquoi les astronomes et les formats de données scientifiques l'utilisent.
Conversion d'une date grégorienne
Pour convertir le 14 février 2023 en numéro de jour julien, passez le mois, le jour et l'année :
$jd = gregoriantojd(2, 14, 2023);
echo $jd; // 2459990La variable $jd contient désormais 2459990, le numéro de jour julien pour cette date.
Gestion des dates invalides
Si la date est en dehors de la plage prise en charge, gregoriantojd() retourne 0 plutôt que de lever une erreur. Traitez un résultat 0 comme une « entrée invalide » :
$jd = gregoriantojd(13, 40, 2023); // month 13, day 40 — invalid
if ($jd === 0) {
echo "Invalid date.";
}Conversion inverse
Pour effectuer l'opération inverse — passer d'un numéro de jour julien à une chaîne de date grégorienne — utilisez la fonction inverse jdtogregorian() :
$jd = gregoriantojd(2, 14, 2023);
echo jdtogregorian($jd); // 2/14/2023Dans quels cas utiliser cette fonction ?
Utilisez gregoriantojd() lorsque vous avez besoin de :
- Compter les jours entre deux dates en soustrayant leurs numéros de jour juliens.
- Convertir entre systèmes de calendrier (par exemple, du grégorien au julien ou aux dates hébraïques) en utilisant les autres fonctions Calendrier de PHP.
- Trouver le jour de la semaine d'une date avec
jddayofweek().
Pour les travaux applicatifs courants — analyse des entrées utilisateur, formatage des sorties, ajout d'intervalles — privilégiez la classe DateTime, qui gère les fuseaux horaires et est bien plus pratique.
Conclusion
gregoriantojd() convertit une date grégorienne en un entier unique représentant le numéro de jour julien, ce qui simplifie les calculs de dates et les conversions entre calendriers. N'oubliez pas l'ordre des arguments avec le mois en premier, vérifiez un retour 0 en cas d'entrée invalide, et associez-la à jdtogregorian() pour effectuer la conversion inverse. Pour la gestion des dates à usage général, la classe DateTime reste le bon outil.