//php は今日が何曜日かを取得します
関数 getWeek($unixTime=''){
$unixTime=is_numeric($unixTime)?$unixTime:time();
$weekarray=array('日','一','二','三','四','五','六');
return 'week'.$weekarray[date('w',$unixTime)];
}
エコー getWeek();
または
関数 getWeek(){
$week = date("w");
スイッチ($week){
ケース 1:
「月曜日」を返します;
休憩
ケース 2:
「火曜日」を返します;
休憩
ケース 3:
「水曜日」を返します;
休憩
ケース4:
「木曜日」を返します;
休憩
ケース5:
「金曜日」を返します;
休憩
ケース6:
「土曜日」を返します;
休憩
ケース0:
「日曜日」を返します;
休憩
}
}
echo "今日は:".getWeek();
?>
phP の date 関数には時間範囲があります。つまり、1970 年から 2038 年までしか指定できないため、この範囲外のアルゴリズムは不正確になります。では、どうやって計算するのでしょうか?実際、次の公式があります:
ツェラーの公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
式中の記号の意味は次のとおりです、w: 週、c: 世紀-1、y: 年 (2 桁)、m: 月 (m は 3 以上 14 以下)つまり、Zeiler の式では、2 月は前年の 13 番目と 14 番目の月として計算されます。たとえば、2003 年 1 月 1 日は 2002 年 3 月 1 日として計算されます。四捨五入、つまり整数部分だけです。 (C は世紀から 1 を引いたもの、y は西暦の下 2 桁、M は月、d は日です。1 月と 2 月は前年の 13 月と 14 月に従って計算されます。現時点では、C と y はどちらも 1 年間の値として計算されます)
計算されたWを7で割った余りが曜日になります。余りが 0 の場合は日曜日です。
2049 年 10 月 1 日 (建国記念日 100 周年) を例として、Zeller の公式を使用して計算します。プロセスは次のとおりです。
ツェラーの公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (7 で割った余りは 5)
つまり、2049 年 10 月 1 日(建国記念日 100 周年)は金曜日です。