easter_date

(PHP 4, PHP 5, PHP 7)

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

Описание

easter_date ( int|null $year = null , int $mode = CAL_EASTER_DEFAULT ) : int

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

Внимание

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

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

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

year

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

mode

Позволяет рассчитывать даты Пасхи на основе юлианского календаря, если установлено значение CAL_EASTER_ALWAYS_JULIAN. Смотрите также константы календаря.

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

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

Список изменений

Версия Описание
8.0.0 year теперь допускает значение null.

Примеры

Пример #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

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

  • Функция easter_days() - Получить количество дней между 21 марта и Пасхой в заданном году длч расчета дня Пасхи до 1970 или после 2037