easter_days

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

easter_daysRetorna el número de días entre el 21 de marzo y Pascua, para un año dado

Descripción

easter_days(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Retorna el número de días entre el 21 de marzo y Pascua, para un año dado. Si el año no está especificado, se utilizará el año actual.

Esta función puede ser utilizada en lugar de easter_date() para calcular la fecha de Pascua, para los años que caen fuera del intervalo de validez de los timestamps UNIX (es decir, antes de 1970 o después de 2037).

La fecha de Pascua fue fijada por el concilio de Nicea, en 325 de nuestra era, como siendo el domingo después de la primera luna llena que sigue al equinoccio de primavera. El equinoccio de primavera es considerado como siendo siempre el 21 de marzo, lo que reduce el problema al cálculo de la fecha de la luna llena que sigue, y el domingo siguiente. El algoritmo fue introducido hacia 532, por Dionysius Exiguus. Con el calendario Juliano, (para los años antes de 1753), un ciclo de 19 años es suficiente para conocer las fechas de las fases de la luna. Con el calendario Gregoriano, (a partir de los años 1753, diseñado por Clavius y Lilius, luego introducido por el papa Gregorio XIII en octubre de 1582, y en Gran Bretaña y sus colonias en septiembre de 1752), dos factores de corrección fueron añadidos para hacer el ciclo más preciso.

Parámetros

year

El año, en forma de un número positivo. Si se omite o es null, el valor por defecto será el año actual según la hora local.

mode

Permite el cálculo de las fechas de Pascua basándose en el calendario Gregoriano para los años entre 1582 y 1752 cuando se define como CAL_EASTER_ROMAN. Ver las constantes de los calendarios para más constantes válidas.

Valores devueltos

El número de días entre el 21 de marzo y Pascua, para el año year proporcionado.

Historial de cambios

Versión Descripción
8.0.0 year ahora es nullable.

Ejemplos

Ejemplo #1 Ejemplo con easter_days()

<?php

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

?>

Ver también

  • easter_date() - Retorna el timestamp Unix para la medianoche local el día de Pascua de un año dado

add a note

User Contributed Notes 2 notes

up
9
p dot rijt at caesar dot nl
10 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
0
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