Календарь
PHP Manual

easter_date

(PHP 4, PHP 5, PHP 7)

easter_date Метка времени Unix соответствующая полуночи на Пасху в заданном году

Описание

int easter_date ([ int $year = date("Y") ] )

Возвращает метку времени Unix соответствующую полуночи на Пасху в заданном году.

Внимание

Функция выдаст предупреждение, если заданный год будет выходить за пределы диапазона меток времени Unix (с 1970 по 2037 гг).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В Юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В Грегорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582г., а в Великобритании и ее колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчета дат.

Список параметров

year

Год - число между 1970 и 2037. Если не указан, то по умолчанию равен текущему года, согласно местному времени.

Возвращаемые значения

Дата Пасхи в виде метки времени Unix.

Примеры

Пример #1 Пример использования 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

?>

Примечания

Замечание:

Функция easter_date() зависит от вашей системной библиотеки C функций работы со временем, а не от внутренних функций PHP. Как следствие, функция easter_date() использует переменную окружения TZ для определения временной зоны, которую она использует, а не заданную в PHP временную зону по умолчанию. Это может привести к неожиданному поведению при использовании этой функции совместно с другими функциями для работы с датами в PHP.

Решением может стать использование функции easter_days() с объектами DateTime и DateInterval для подсчета начала Пасхи в вашей временной зоне, как в этом примере:

<?php
function get_easter_datetime($year) {
    
$base = new DateTime("$year-03-21");
    
$days easter_days($year);

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

foreach (
range(20122015) as $year) {
    
printf("Пасха в %d году приходится на %s\n",
           
$year,
           
get_easter_datetime($year)->format('F j'));
}
?>

Результат выполнения данного примера:

Пасха в 2012 году приходится на April 8
Пасха в 2013 году приходится на March 31
Пасха в 2014 году приходится на April 20
Пасха в 2015 году приходится на April 5

Смотрите также


Календарь
PHP Manual