その日が存在するか? (PHP)


PHPで日付を生成する際にはチェックが必要な場合があります。
例えば、2100年2月29日は存在するか?といったことです。

閏年は4年に一度ですが、さらに100年に1度の2月29日はありません。さらに400年に一度は2月29日があります。従って2100年2月29日は存在しません。2200年2月29日も存在しません。ところが、2000年2月29日は存在します。

2000年2月29日を何の感慨もなく過ごしましたが、400年に1度の珍しい日であったようです。

前置きが長くなりましたが、この日は存在するの?というチェックにはcheckdateを使います。

if (checkdate( 2, 29, 2100)){
	print "存在します。";
}else{
	print "存在しません。";
}

上記のようにすると確認できます。(月、日、年の順番を間違えないように。)

ちなみに、地球が太陽を一周するのにかかる日にちは約365.242199日に対し、上記の方法で閏年を決定すると400年の平均は365.2425日となって誤差は約3300年で1日だそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

SPAM防止のため数字と漢数字の算数の計算をお願いします。 * Time limit is exhausted. Please reload CAPTCHA.