形式が正しいだけではその日付が本当に存在するかどうかは分かりません。本当に存在する日付かをチェックするための簡単な方法をご紹介します。1月は31日まで、閏年で無ければ2月は28日まで......という判別ループを書く必要はありません。みやび子Perlガイドそれは正しい日付ですか?さて早速なのですが、以下のようにフォームに入力があったとします。誕生日の入力欄お誕生日が2月29日です。閏年にしかない日付ですが、2000年は閏年だったでしょうか?確か4で割り切れる年は閏年でしたね。100で割り切れる年は閏年でなかった気が...うーん、そうすると、これは入力ミスでしょうか?正解は、正しい入力です。400で割り切れる年は閏年なので、2000年の2月29日は存在しました。日付の入力チェックというのはこのように、単純な形式チェックだけで済まない上、間違った日付はシステム上のエラーを引き起こすことも多いですのでデータの入り口でチェックが必要です。入力チェックの事を「バリデーション」とも言います。日付入力用のブルダウンメニューWeb上の入力フォームの世界では入力ミスを防ぐために数字のプルダウンメニューで日付を入力させることもあります。年と月に合わせて日の選択リストを28から31日までのどれかに切り替えているかと言うとそこまではやっていないWebサイトの方が多いようです。指定することでブラウザの入力支援やチェック機能が働く場合がありますが、まだまだブラウザによっては未対応です。使って簡単にこのチェックができます。サンプルコードは以下の通りです。日付からUNIX時間を算出してくれます。存在しない日付情報を引数として与えるとエラーで計算ができません。この性質を利用して、計算結果があれば正しい日付情報だった、と判別しているのです。プログラミング上のテクニックです。チェックサブルーチン利用方法フォームなどの入力チェックに利用する場合は先に入力値の半角変換を行ってからこのチェックを行います。この時付け足す処理は、例えば以下の通りです。形式で入力して下さい。楽天市場でPerl関連の書籍を見るAmazonでPerl関連の書籍を見る※記事内容は執筆時点のものです。最新の内容をご確認ください。異なる可能性があります。About公式SNS日々の生活や仕事を楽しむための情報を毎日お届けします。