PHP Conference Nagoya 2025

easter_days

(PHP 4, PHP 5, PHP 7, PHP 8)

easter_daysObtener el número de días despúes del 21 de marzo en el cuál cae Pascua para un año dado

Descripción

easter_days(int $year = date("Y"), int $method = CAL_EASTER_DEFAULT): int

Obtiene el número de días despúes del 21 de marzo en el cuál cae Pascua para un año dado. Si no se especifica el año, se asume el año actual.

Esta función se puede usar en vez de easter_date() para calcular cuándo cae Pascua para años fuera del rango de fechas Unix (esto es, antes de 1970 o después de 2037).

La fecha del Domiongo de Pascua fue definida por el Concilio de Nicea en el año 325 D.C. como el domingo después de la primera luna llena que cae en o después del Equinocio de Primavera. El equinocio se asume que cae en el 21 de marzo, por lo que el cálculo se reduce a determinar la fecha de la luna llena y la fecha del siguiente domingo. El algoritmo que se usa aquí fue introducido alrededor del año 532 por Dionisio el Exiguo. Bajo el Calendario Juliano (para años anteriores a 1753) se usa un simple ciclo de 19 años para rastrear las fases de la luna. Bajo el Calendario Gregoriano (para años posteriores a 1753 - concebido por Clavio y Lilio, e introducido por el papa Gregorio XIII en Octubre de 1582, e introducido en Gran Bretaña y sus colonias en Septiembre de 1752) se añadieron dos factores de corrección para hacer el ciclo más exacto.

Parámetros

year

El año como un número positivo. Si se omite, el valor predeterminado será el del año actual según la hora local.

method

Permite calcular las fechas de Pascua basadas en el calendario Gregoriano durante los años 1582 - 1752 cuando se establece a CAL_EASTER_ROMAN. Vea las constantes de calendario para más constantes válidas.

Valores devueltos

El número de días después del 21 de marzo en el que cae el Domingo de Pascua para el año year dado.

Ejemplos

Ejemplo #1 Ejemplo de easter_days()

<?php

echo easter_days(1999); // 14, esto es, 4 de abril
echo easter_days(1492); // 32, esto es, 22 de abril
echo easter_days(1913); // 2, esto es, 23 de marzo

?>

Ver también

  • easter_date() - Obtener la fecha Unix para la medianoche de Pascua de un año dado

add a note

User Contributed Notes 2 notes

up
5
p dot rijt at caesar dot nl
9 years ago
This function returns an array of timestamp corresponding to Dutch National holidays. Liberation Day (Bevrijdingsdag) is added as a National holiday once every five years (2000, 2005, 2010, ...).

<?php
function getHolidays($year = null) {
if (
$year === null) {
$year = intval(date('Y'));
}

$easterDate = easter_date($year);
$easterDay = date('j', $easterDate);
$easterMonth = date('n', $easterDate);
$easterYear = date('Y', $easterDate);

$holidays = array(
// Nieuwjaarsdag
mktime(0, 0, 0, 1, 1, $year),
// 1e Kerstdag
mktime(0, 0, 0, 12, 25, $year),
// 2e Kerstdag
mktime(0, 0, 0, 12, 26, $year)
);

// Bevrijdingsdag
if (($year % 5) == 0) {
$holidays[] = mktime(0, 0, 0, 5, 5, $year);
}

// Koninginnedag (< 2014) of Koningsdag (>= 2014).
// Verplaats naar zaterdag als het valt op zondag.
if ($year <= 2013) { // Koninginnedag <= 2013
if (date('w', mktime(0, 0, 0, 4, 30, $year)) == 0) { // Op zondag?
$holidays[] = mktime(0, 0, 0, 4, 29, $year); // Verplaats naar zaterdag
} else {
$holidays[] = mktime(0, 0, 0, 4, 30, $year); // Koninginnedag
}
} else {
// Koningsdag > 2014
if (date('w', mktime(0, 0, 0, 4, 27, $year)) == 0) { // Op zondag?
$holidays[] = mktime(0, 0, 0, 4, 26, $year); // Verplaats naar zaterdag
} else {
$holidays[] = mktime(0, 0, 0, 4, 27, $year); // Koningsdag
}
}

// Onderstaande dagen hebben een datum afhankelijk van Pasen
// Goede Vrijdag (= pasen - 2)
$holidays[] = strtotime('-2 days', mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear));
// 1e Paasdag
$holidays[] = mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear);
// 2e Paasdag (= pasen +1)
$holidays[] = strtotime('+1 days', mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear));
// Hemelvaartsdag (= pasen + 39)
$holidays[] = strtotime('+39 days', mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear));
// 1e Pinksterdag (= pasen + 49)
$holidays[] = strtotime('+49 days', mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear));
// 2e Pinksterdag (= pasen + 50)
$holidays[] = strtotime('+50 days', mktime(0, 0, 0, $easterMonth, $easterDay, $easterYear));

sort($holidays);

return
$holidays;
}

$holidays = getHolidays(2014);

foreach (
$holidays as $holiday) {
echo
date('d-M-Y', $holiday) . '<br>';
}
?>
up
1
ian at eiloart dot com-NOSPAM
23 years ago
Also, be aware that the eastern orthodox churches sometimes have different dates for easter. See, for example <http://webexhibits.org/calendars/calendar-christian-easter.html>. And note that the dates of easter a subject to change, for example, the churches might some day decide to unify the dates.
To Top