PHP
downloads | documentation | faq | getting help | mailing lists | 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 — Επιστροφή του UNIX timestamp για τα μεσάνυχτα του Πάσχα του δοθέντος έτους

Περιγραφή

int easter_date ([ int $year ] )

Επιστρέφει το UNIX timestamp που αντιστοιχεί στα μεσάνυχτα του Πάσχα του δοθέντος έτους.

Από την PHP 4.3.0, η παράμετρος year είναι προαιρετική και εάν παραλείπεται δείχνει default την παρούσα χρονιά, συμφωνα με την localtime.

Warning: Αυτή η συνάρτηση θα παράξει ένα warning εάν η χρονιά είναι εκτός των ορίων του UNIX timestamp (π.χ. πριν το 1970 ή μετά το 2037).

Example#1 Παραδείγματα της easter_date()

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

Η ημερομηνία της ημέρας του Πάσχα ορίστηκε, από τη Σύνοδο της Νίκαιας το 325 μ.Χ., ως η Κυριακή μετά την πρώτη πανσέληνο μετά ή στην Εαρινή Ισημερία. Η ισημερία είναι πάντα στις 21 Μαρτίου, έτσι ο υπολογισμός περιορίζεται στον υπολογισμό της ημερομηνίας της πανσέληνου και αυτής της ακόλουθης Κυριακής. Ο αλγόριθμος που χρησιμοποιείται εδώ προτάθηκε το 532, περίπου, από τον Dionysius Exiguus. Στο Ιουλιανό ημερολόγιο (για χρόνια πριν το 1753) ένας απλός κύκλος 19 χρόνων χρησιμοποιείται για τον υπολογισμό των φάσεων της Σελήνης. Στο Γραγοριανό ημερολόγιο (for years after 1753 - επινοήθηκε από τους Clavius και Lilius, εφαρμόστηκε από τον Πάπα Γρηγόριο XIII τον Οκτώβριο του 1582, και στη Βρετανία και τις αποικίες της το Σεπτέμβριο του 1752) προστέθηκαν δύο παράγοντες διόρθωσης για να κάνουν τον κύκλο πιο ακριβή.

(Ο κώδικας είναι βασισμένος σε ένα πρόγραμμα σε C του Simon Kershaw, <webmaster@ely.anglican.org>)

Ανατρέξτε επίσης στην easter_days(), για τον υπολογισμό του Πάσχα πριν το 1970 και μετά το 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