• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php メールフォーム日付チェック方法)

PHPメールフォームでの日付チェック方法

このQ&Aのポイント
  • メールフォームで生年月日を入力し、確認画面で日付チェックを行い、間違っている場合はフォーム画面に戻る方法について質問しています。
  • 現在の日付チェックの方法では、2月31日のような存在しない日付でも通過してしまう問題があります。
  • 閏年の計算も行えるような日付チェックの方法についても教えてほしいとの要望があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • hyoro
  • ベストアンサー率71% (5/7)
回答No.1

checkdate関数の返り値は「指定した日付が有効な場合に TRUE、そうでない場合に FALSE を返します。」となります。 なので、下のようなif文にする必要があります。 if (checkdate($month, $day, $year) === false) { $error[] = '生年月日が正しくありません。'; } また、checkdate関数は閏年の判断も行ってくれます。 詳しくはマニュアルを参照してください。

参考URL:
http://jp.php.net/manual/ja/function.checkdate.php
h-h13
質問者

補足

お忙しい中有難うございます。 PHPが初心者のもので・・・ もう一つお聞きしたいことがありまして、 本日より以前に選択された場合エラーをだす場合はどうしたらよろしいでしょうか? 例→2010年01月01日は○  →2009年01月01日は× <?php //年の入力 print '<select name="year">' . "\n"; $start = date('Y') 0; $end = date('Y') +1; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>年' . "\n"; //月の入力 print '<select name="month">' . "\n"; for ($i = 01; $i <= 12; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>月' . "\n"; //日の入力 print '<select name="day">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>日' . "\n"; ?> 参考サイトを拝見させていただいたのですが、よくわからずでした。 質問ばかりで申し訳ありませんがよろしくお願いします。

その他の回答 (1)

  • hyoro
  • ベストアンサー率71% (5/7)
回答No.2

指定された日付が今日より前かと判断すれば良いのだと思いますが。

h-h13
質問者

補足

大変お手数をお掛けいたしますが、よろしければソースを教えていただけないでしょう?

関連するQ&A

専門家に質問してみよう