把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
function CaculateWeekDay( $y, $m, $d) { if( $m == 1 || $m == 2) { $m +=12; $y--; } $week = ( $d + 2 * $m + 3 * ( $m + 1)/5 + $y + $y / 4 - $y / 100 + $y / 400) % 7; $weekstr = ''; switch($week) { case 0: $weekstr = '星期一'; break; case 1: $weekstr = '星期二'; break; case 2: $weekstr = '星期三'; break; case 3: $weekstr = '星期四'; break; case 4: $weekstr = '星期五'; break; case 5: $weekstr = '星期六'; break; case 6: $weekstr = '星期日'; break; } return $weekstr; }