• ベストアンサー

PHPで、日付をチェック

PHPで、飲食店の予約フォームを作っています。 ファイルは下記の通り。 hoge1.php (フォームに入力) hoge2.php (確認画面) hoge3.php(送信完了画面) check.php入力内容のチェック このフォームで、予約日が前日以内の場合、 「電話にてご予約ください。」 と、エラー表示させたいのですが。 お手数ですが、ご教示ください。 未熟者ですが、よろしくお願いいたします。

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

  • ベストアンサー
  • hola1973
  • ベストアンサー率45% (5/11)
回答No.3

#2の方のがいいかも知れないのでこちらで判定するとして ★form.php <? require_once('form.inc'); ?> ★form.inc 予約年月日<br> <form method=post action="check.php"> 年<input type="text" name="Y" size="4" value="<? echo $Y; ?>"> 月<input type="text" name="m" size="2" value="<? echo $m; ?>"> 日<input type="text" name="d" size="2" value="<? echo $d; ?>"> <input type=submit value="送信"> </form> ★check.php $today = date("Y-m-d") ; if ($today == date("Y-m-d",mktime(0,0,0,$m,$d-1,$Y)) ){ echo "<font color="red">予約日前日です</font><br>"; echo "再度設定してください。<br>"; require_once('form.inc'); }else{ echo "予約が取れます。";  //次の処理へ } こんなのでどうでしょうか? あえてform.incを使ったのは、エラーが発生した場合、ユーザーに戻らせる手間を省くためです。

od-2828
質問者

お礼

早速のご回答、ありがとうございます。 内容がすごく分かり易くなりました。 ありがとうございます!

その他の回答 (2)

回答No.2

予約日を$Y年m月d日とすると $today = date("Y-m-d") ; if ( $today == date("Y-m-d",mktime(0,0,0,$m,$d-1,$Y)) ){ //予約日前日です } こんな感じでしょうか。

od-2828
質問者

お礼

ありがとうございます。 form.phpと、check.phpのやりとりを教えていただければ、幸いです。

  • hola1973
  • ベストアンサー率45% (5/11)
回答No.1

簡単に書くとこんな感じでしょうか。 $time = mktime($hour, $minute, $second, $month, $day, $year)-mktime(); //24時間以内 if($time < 24*60*60){ echo "電話で予約してください。"; }

参考URL:
http://jp.php.net/manual/ja/function.mktime.php
od-2828
質問者

お礼

mktimeをつかうんですね。 ありがとうございます。

関連するQ&A