PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

easter_days> <cal_to_jd
Last updated: Sun, 25 Nov 2007

view this page in

easter_date

(PHP 4, PHP 5)

easter_date — Získať UNIXový čas pre polnoc na Veľkú Noc daného roku

Popis

int easter_date ([ int $rok ] )

Vracia UNIXový čas zodpovedajúci polnoci na Veľkú Noc daného roku.

Od PHP 4.3.0 je parameter rok voliteľný a ak sa vynechá, tak je predvolene nastavený na súčasný rok podľa miestneho času.

Upozornenie: Táto funkcia bude generovať varovné hlásenia ak je rok mimo rozsah UNIXového času (t.j. pred 1970 alebo po 2037).

Example#1 easter_date() príklad

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" */

Dátum Veľkonočného dňa bol definovaný Radou Nicaea v 325 n.l. ako nedeľa po prvom splne, ktorý padá na jarnú rovnodennosť alebo po ňom. Rovnodennosť pripadá vždy na 21. marec, takže výpočet sa redukuje o určovanie dátumu po splne a dátumu následujúcej nedele. Tu použitý algoritmus bol predstavený okolo roku 532 Dionysiusom Exiguusom. V Juliánskom kalendári ( pre roky pred 1753) sa jednoduchý 19-ročný cyklus používa na sledovanie fáz Mesiaca. V Gregoriánskom kalendári (pre roky po roku 1753 - vymysleli ho Clavius a Lilius a predstavil ho Pápež Gregory XIII v októbri 1582, do Británie a jej kolónii v septembri 1752) sú pridané dva opravné faktory, aby sa cyklus urobil presnejším.

(Kód je založený na C programe od Simona Kershawa, <webmaster@ely.anglican.org>)

Pozri easter_days() pre výpočet Veľkej noci pred 1970 alebo po 2037.



easter_days> <cal_to_jd
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
easter_date
maxie
12-Jun-2008 01:36
To compute the correct Easter date for Eastern Orthodox Churches I made a function based on the Meeus Julian algorithm:

<?php
function orthodox_eastern($year) {
   
$a = $year % 4;
   
$b = $year % 7;
   
$c = $year % 19;
   
$d = (19 * $c + 15) % 30;
   
$e = (2 * $a + 4 * $b - $d + 34) % 7;
   
$month = floor(($d + $e + 114) / 31);
   
$day = (($d + $e + 114) % 31) + 1;
   
   
$de = mktime(0, 0, 0, $month, $day + 13, $year);
   
    return
$de;
}
?>
nigelf at esp dot co dot uk
28-Jan-2008 03:50
v5.2.1 - There is a known bug with easter_date() that can return incorrect dates for some years:

<?php
// 2008 OK
echo date("D d M Y", easter_date(2008));  // Sun 23 Mar 2008

// 2009 returns Saturday
echo date("D d M Y", easter_date(2009));  // Sat 11 Apr 2009
?>


However easter_days() works correctly:

<?php
echo date("D d M Y", strtotime("2009-03-21 +".easter_days(2009)." days"));  // Sun 12 Apr 2009
?>

It is apparently related to timezone settings.
14-Aug-2006 07:46
I made the function like this ... works fine !

<?php
function ostern
{
   
$maerz21=date('z',mktime(0,0,0,3,21,$jb));

   
$d=((15 + $jb/100 - $jb/400 - (8 * $jb/100 + 13) / 25)%30 + 19 * ($jb%19))%30;

    if (
$d==29)
    {
       
$D=28;
    }
    elseif(
$d==28 && ($jb%17)>=11)
    {
       
$D=27;
    }
    else
$D=$d;   

   
$e=(2 * ($jb%4) + 4 *($jb%7) + 6 * $D + (6 + $jb/100 - $jb/400 - 2)%7)%7;

   
$ostersonntag=$e+$D+1+$maerz21;
    return
$ostersonntag;
}
?>
phpuser
08-Nov-2004 08:17
The algorithm from Bigtree is correct if you add some (int) cast
<?php
  
function easter_date ($Year) {
  
      
/*
       G is the Golden Number-1
       H is 23-Epact (modulo 30)
       I is the number of days from 21 March to the Paschal full moon
       J is the weekday for the Paschal full moon (0=Sunday,
         1=Monday, etc.)
       L is the number of days from 21 March to the Sunday on or before
         the Paschal full moon (a number between -6 and 28)
       */
      

        
$G = $Year % 19;
        
$C = (int)($Year / 100);
        
$H = (int)($C - (int)($C / 4) - (int)((8*$C+13) / 25) + 19*$G + 15) % 30;
        
$I = (int)$H - (int)($H / 28)*(1 - (int)($H / 28)*(int)(29 / ($H + 1))*((int)(21 - $G) / 11));
        
$J = ($Year + (int)($Year/4) + $I + 2 - $C + (int)($C/4)) % 7;
        
$L = $I - $J;
        
$m = 3 + (int)(($L + 40) / 44);
        
$d = $L + 28 - 31 * ((int)($m / 4));
        
$y = $Year;
        
$E = mktime(0,0,0, $m, $d, $y);

         return
$E;

   }
?>

easter_days> <cal_to_jd
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites