PHP 8.6.0 Beta 1 is available for testing

easter_days

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

easter_days Получает количество дней между 21 марта и Пасхой в заданном году

Описание

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

Возвращает количество дней между 21 марта и Пасхой в заданном году. Если год не указан, расчёт будет произведён для текущего года.

Эту функцию можно использовать вместо easter_date() для расчёта даты Пасхи для дат, выходящих за рамки диапазона временных меток Unix (с 1970 по 2037 годы).

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

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

year

Год, положительное число. Если не задан или null , используется текущий год в соответствии с локальным временем сервера.

mode

Позволяет рассчитать Пасхальные даты, основываясь на григорианском календаре для 1582 - 1752 годов, если установить CAL_EASTER_ROMAN . Смотрите список констант календаря, чтобы узнать о всех допустимых константах.

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

Количество дней между 21 марта и Пасхальным воскресеньем в заданном году year.

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

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

Примеры

Пример #1 Пример использования easter_days()

<?php
echo easter_days(1999); // 14, т.e. April 4
echo easter_days(1492); // 32, т.e. April 22
echo easter_days(1913); // 2, т.e. March 23
?>

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

  • easter_date() - Получает метку времени Unix, которая соответствует местной полночи на Пасху в заданном году

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 2 notes

up
12
p dot rijt at caesar dot nl
11 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
-1
ian at eiloart dot com-NOSPAM
24 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.
+Добавить

AltStyle によって変換されたページ (->オリジナル) /