• 締切済み

日付の比較について

最近PHPの勉強を始めた初心者です。 はじめて質問させていただきます。 2005-1-1から2020-12-31の間で入力した日付の曜日を表示するプログラムを作成しています。 2005-1-1から2020-12-31の間以外ならエラー表示するようにしたいのですが、 入力した日付との比較がうまくいかず、思うように動きません。 どのように直せばいいのかを教えていただけないでしょうか?よろしくお願いします。 <?php $year=$_POST["year"]; $month=$_POST["month"]; $day=$_POST["day"]; $date_str="$year-$month-$day"; $date_time=strtotime($date_str); $firstdate_str="2005-1-1"; $firstdate_time=strtotime($firstdate_str); $lastdate_str="2020-12-31"; $lastdate_time=strtotime($lastdate_str); if ($date_time < $firstdate_time || $date_time> $lastdate_time)  {  echo "Please enter a date between 1/1/2005 and 12/31/2020.";  } else  {  $finddate=date('l', mktime(0,0,0,$month, $day, $year));  echo "The day entered in on $finddate";  } ?>

みんなの回答

  • 11spec0
  • ベストアンサー率83% (10/12)
回答No.2

どのような動きをするのでしょうか? 試してみたところ、syntax errorが返ってきましたが、うまくいかないとはこのことを言っているのでしょうか? 実際試したときの動きを書いてほしいです。 syntaxを直して実行しましたら、うまくいきましたよ。

noname#223623
noname#223623
回答No.1

不具合の状況をもう少し詳しく書いてほしいな。 POSTのデータがちゃんと取得できてるのは確認済みですか?確認済みということにして、質問のスクリプトをCLI版で動くようにちょっとだけ変更した(CLIにしたのはうちの都合なので気にしないでください)。  $year="2004"; //3行目  $month="12"; //4行目  $day="31"; //5行目 このスクリプトを実行するとエラー。  $ php -f date-error.php    Parse error: syntax error, unexpected '{' in /home/hoge/date-error.php on line 17 不具合はこれかな?そうだとするとインデントに全角スペースを使ってるのが原因。投稿のために入れたのかもしれないけど、実際のスクリプトにも使用してるなら、半角スペースにすれば直る。 それ以外は問題ないように思う。別のエラーなら具体的に補足してください。