Funciones de Calendario
PHP Manual

easter_date

(PHP 4, PHP 5)

easter_dateObtener la fecha Unix para la medianoche de Pascua de un año dado

Descripción

int easter_date ([ int $year ] )

Devuelve la fecha Unix correspondiente a la medianoche de Pascua del año dado.

Advertencia

Esta función generará una advertencia si el año está 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 entre 1970 y 2037.

Valores devueltos

El Domingo de Pascua como fecha Unix.

Historial de cambios

Versión Descripción
4.3.0 El parámetro year es opcional y si se omite, por defecto es el año actual de acuerdo a la hora actual.

Ejemplos

Ejemplo #1 Ejemplo de easter_date()

<?php

echo date("M-d-Y"easter_date(1999));        // Apr-04-1999
echo date("M-d-Y"easter_date(2000));        // Apr-23-2000
echo date("M-d-Y"easter_date(2001));        // Apr-15-2001

?>

Notas

Nota:

easter_date() depende de las función de hora en C de su sistema en vez de usar las funciones de fecha y hora internas de PHP. Como consecuencia, easter_date() utiliza la variable de entorno TZ para determinar la zona horaria en la que debería operar, en lugar de usar la zona horaria predeterminada de PHP, la cual podría resultar en un comportamiento inesperado al usar esta función junto con otras funciones de fecha de PHP.

Como atajo, se puede usar easter_days() con DateTime y DateInterval para calcular el inico de la Semana Santa en la zona horario de su PHP como sigue:

<?php
function get_easter_datetime($año) {
    
$base = new DateTime("$año-03-21");
    
$días easter_days($año);

    return 
$base->add(new DateInterval("P{$días}D"));
}

foreach (
range(20122015) as $año) {
    
printf("La Semana Santa del %d cae en %s\n",
           
$año,
           
get_easter_datetime($año)->format('F j'));
}
?>

El resultado del ejemplo sería:

La Semana Santa del 2012 cae en April 8
La Semana Santa del 2013 cae en March 31
La Semana Santa del 2014 cae en April 20
La Semana Santa del 2015 cae en April 5

Ver también


Funciones de Calendario
PHP Manual