端くれプログラマの備忘録 PHP [PHP] 存在する日付かチェックする

[PHP] 存在する日付かチェックする

ユーザに入力させた日付が実際に存在するかチェックしたいときがある。

たとえば30日しかない月なのに31日と入力されたり、うるう年でないのに2月29日と入力されたり。そういった不適切な入力を検知して、ユーザに再入力を促したい。そのためには入力された日付の妥当性を確認する必要がある。

日付の妥当性チェックはcheckdate関数で行える。

$year = 2001;
$month = 2;
$day = 29;
if (checkdate($month, $day, $year)) {
    // 日付は妥当
} else {
    // 日付は不当
}

参考サイト

PHP: checkdate – Manual
http://php.net/manual/ja/function.checkdate.php