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日だそうです。