(PHP 4, PHP 5, PHP 7)
easter_date — Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году
$year
= date("Y")
[, int $method
= CAL_EASTER_DEFAULT
]] ) : intВозвращает метку времени Unix, соответствующую полуночи на Пасху в заданном году.
Функция выдаст предупреждение, если заданный год будет выходить за пределы диапазона меток времени Unix (меньше 1970, либо больше 2037 для 32-битных систем).
Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В григорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582 г., а в Великобритании и ее колониях в сентябре 1752 г.) было добавлено 2 поправочных коэффициента, увеличивающих точность расчета дат.
year
Год - число между 1970 и 2037. Если не указан, то по умолчанию равен текущему года, согласно местному времени.
method
Позволяет рассчитывать даты Пасхи на основе юлианского календаря,
если установлено значение
CAL_EASTER_ALWAYS_JULIAN
. Смотрите
также константы календаря.
Дата Пасхи в виде метки времени 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(2012, 2015) 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