This article mainly introduces php's method for accurately calculating the Easter date, which involves php's operation date technique and is very useful, for more information about how php accurately calculates Easter dates, see the example in this article. Share it with you for your reference. The details are as follows:
<?PHPfunction isLeapYear( $nYEAR ) { if((($nYEAR % 4 == 0) AND !($nYEAR % 100 == 0)) AND ($nYEAR % 400 != 0)) { return TRUE; } else { return FALSE; }}function p( $a, $b ){ return( $a - ( $a % $b )) / $b;}function easterSunday( $nYEAR ) { // The function is able to calculate the date //of eastersunday back to the year 325, // but mktime() starts at 1970-01-01! if ( $nYEAR < 1970 ) { $dtEasterSunday = mktime( 1,1,1,1,1,1970 ); } else { $nGZ = ( $nYEAR % 19 ) + 1; $nJHD = p( $nYEAR, 100 ) + 1; $nKSJ = p( 3 * $nJHD, 4 ) - 12; $nKORR = p( 8 * $nJHD + 5, 25 ) - 5; $nSO = p( 5 * $nYEAR, 4 ) - $nKSJ - 10; $nEPAKTE = (( 11 * $nGZ + 20 + $nKORR - $nKSJ ) % 30 ); if (( $nEPAKTE == 25 OR $nGZ == 11 ) AND $nEPAKTE == 24 ) { $nEPAKTE = $nEPAKTE + 1; } $nN = 44 - $nEPAKTE; if( $nN < 21 ) { $nN = $nN + 30; } $nN = $nN + 7 - (( $nSO + $nN ) % 7 ); $nN = $nN + isLeapYear( $nYEAR ); $nN = $nN + 59; $nA = isLeapYear( $nYEAR ); // Month $nNM = $nN; if ( $nNM > ( 59 + $nA )) { $nNM = $nNM + 2 - $nA; } $nNM = $nNM + 91; $nMONTH = p( 20 * $nNM, 611 ) - 2; // Day $nNT = $nN; $nNT = $nN; if ( $nNT > ( 59 + $nA )) { $nNT = $nNT + 2 - $nA; } $nNT = $nNT + 91; $nM = p( 20 * $nNT, 611 ); $nDAY = $nNT - p( 611 * $nM, 20 ); $dtEasterSunday = mktime( 0,0,0,$nMONTH,$nDAY,$nYEAR ); } return $dtEasterSunday;}?>
I hope this article will help you with php programming.