W3docs

easter_days()

Apprenez à utiliser la fonction easter_days() de PHP pour calculer le nombre de jours après le 21 mars auquel tombe Pâques pour une année donnée.

Introduction

Bienvenue dans notre guide sur le calcul de la date de Pâques avec PHP. Nous vous montrerons comment déterminer la date pour n'importe quelle année et comment l'intégrer dans vos projets. Nous explorerons l'histoire de Pâques et les calculs mathématiques nécessaires pour en déterminer la date. À la fin de ce guide, vous aurez une compréhension approfondie du calcul de la date de Pâques avec PHP.

Qu'est-ce que Pâques ?

Pâques est une fête chrétienne qui célèbre la résurrection de Jésus-Christ d'entre les morts. C'est l'une des fêtes les plus importantes du calendrier chrétien, célébrée dans le monde entier. Pâques tombe à une date différente chaque année, et cette date est déterminée par un ensemble de calculs complexes.

Histoire de Pâques

Pâques est célébrée par les chrétiens depuis plus de 2 000 ans. Les origines exactes de cette fête restent floues, mais elle serait issue de célébrations païennes du printemps. Le nom « Easter » (en anglais) serait dérivé du vieux mot anglais « ēastre », qui désignait un festival païen célébrant l'équinoxe de printemps.

Dans la tradition chrétienne, Pâques célèbre la résurrection de Jésus-Christ d'entre les morts. Selon la Bible, Jésus fut crucifié le Vendredi saint et ressuscita trois jours plus tard, le dimanche de Pâques. Pâques est célébrée le dimanche suivant la première pleine lune après l'équinoxe de printemps, qui tombe généralement entre le 22 mars et le 25 avril.

Calcul de la date de Pâques

La date de Pâques est déterminée par un ensemble de calculs complexes basés sur les cycles de la lune et du soleil. Ces calculs ont été établis pour la première fois par le Concile de Nicée en 325 apr. J.-C. et ont été affinés au fil des siècles.

La date de Pâques est calculée à l'aide de la formule suivante :

a = year mod 19
b = year mod 4
c = year mod 7
d = (19 * a + 24) mod 30
e = (2 * b + 4 * c + 6 * d + 5) mod 7
f = d + e + 22

Si f est inférieur ou égal à 31, alors Pâques tombe le f mars. Si f est supérieur à 31, alors Pâques tombe le f - 31 avril.

Remarque : cet algorithme classique fonctionne pour la plupart des années, mais présente des cas particuliers connus (par exemple 1954, 1981, 2049, 2079, 2099) où le résultat peut être décalé d'un jour. Pour les applications en production, envisagez d'utiliser une bibliothèque de calendrier dédiée ou d'implémenter les règles complètes de correction grégorienne.

Utiliser PHP pour calculer la date de Pâques

Maintenant que nous comprenons l'histoire et les calculs qui sous-tendent la date de Pâques, voyons comment utiliser PHP pour calculer cette date pour n'importe quelle année. Nous allons commencer par créer une fonction PHP qui prend une année en argument et retourne la date de Pâques pour cette année.

La fonction suit ces étapes :

  1. Calculer les restes a, b et c à partir de l'année saisie.
  2. Calculer les valeurs intermédiaires d et e à l'aide des formules des cycles lunaire et solaire.
  3. Déterminer f, qui représente le décalage en jours par rapport au 22 mars.
  4. Convertir f en mois et jour, puis formater le résultat avec DateTime. (Consultez date_date_set() et date_format() pour les fonctions de date sous-jacentes.)

Le code PHP pour calculer la date de Pâques

<?php

function get_easter_date($year) {
  $a = $year % 19;
  $b = $year % 4;
  $c = $year % 7;
  $d = (19 * $a + 24) % 30;
  $e = (2 * $b + 4 * $c + 6 * $d + 5) % 7;
  $f = $d + $e + 22;
  if ($f <= 31) {
    $month = 3;
    $day = $f;
  } else {
    $month = 4;
    $day = $f - 31;
  }
  // Use DateTime for modern object-oriented PHP (mktime is legacy, not strictly deprecated)
  $date = new DateTime();
  $date->setDate($year, $month, $day);
  return $date->format('Y-m-d');
}

echo get_easter_date(2024); // Outputs: 2024-03-31

La fonction intégrée easter_days()

Le titre de ce chapitre fait référence à la fonction native PHP easter_days(), qui est la méthode standard pour calculer Pâques en production. Cette fonction retourne le nombre de jours après le 21 mars auquel tombe Pâques pour une année donnée. Elle gère automatiquement toutes les corrections calendaires et les cas particuliers, éliminant ainsi le besoin d'arithmétique modulaire manuelle.

echo easter_days(2024); // Returns 10 (March 21 + 10 days = March 31)

Bien que l'algorithme personnalisé ci-dessus soit utile à des fins pédagogiques, easter_days() est recommandée pour les applications réelles en raison de sa précision, de sa simplicité et de sa gestion intégrée des années bissextiles et des ajustements du calendrier grégorien.

Pour convertir le décalage en date calendaire effective, combinez easter_days() avec une date de base au 21 mars :

$year = 2024;
$easter = new DateTime("$year-03-21");
$easter->modify('+' . easter_days($year) . ' days');
echo $easter->format('Y-m-d'); // Outputs: 2024-03-31

PHP fournit également la fonction étroitement liée easter_date(), qui retourne directement la date de Pâques sous forme d'horodatage Unix plutôt qu'un décalage en jours.

Fonctions associées

Pratique

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