2017-06-11 4 views
-1

私は、9時から20時までの範囲で希望の開始時間と終了時間を入力するようにユーザーを設定する方法を考えていますが、私のコードの問題は変数の型が正しくありません。フォームの開閉時間の確認

これは、フォームの入力です:

<div class="form-group"> 
     <label>Start Time:<br></label> 
     <input type="time" name="starttime" class="form-control" value="<?php echo $_POST['starttime']?>" required> 
    </div> 
    <div class="form-group"> 
     <label>End Time:<br></label> 
     <input type="time" name="endtime" class="form-control" value="<?php echo $_POST['endtime']?>" required> 
    </div> 

とデータを処理するPHPコードのために:

if(isset($_POST['submit'])){ 
      echo $open = "9:00"; #declaration for the opening time 
      echo " - "; 
      echo $close = "20:00"; #declaration for the closing time 
      echo "<br>"; 
      echo $starttime = $_POST['starttime']." - "; 
      echo $endtime = $_POST['endtime']; 


      echo "<br>time elapsed: ".$total_time = $endtime - $starttime; 

      if($starttime>$open){ 
       echo "Restaurant is open at these hours"; 
      }else{ 

      #this part validates the time range after the user's preferred time is within the operating hours of the resto 
         if($total_time > 4){ 
         echo "<script>alert('Time Range is too large. Max stay is 4 hours')</script>"; 
        } elseif($total_time<1) { 
         echo "<script>alert('Time Range is small.')</script>"; 
        }else{ 
         echo "oks"; 
        } 
       echo "string"; 
      } 


      } 

エラーはそれがelseステートメントに行き、そしてIないということです変数と比較の問題の解析が原因だと考えてください。比較よりも大きいか小さいかを作成するために2つの変数を変換できる方法はありますか?

+0

エコーを可変設定にミックスしていますが、これはお勧めできません – rybo111

答えて

0

比較の前に文字列varsを浮動小数点に変換しようとします。個人的なことですが、私は文字列の中でより大きな数字が何であるかを比較するためにPHPを信頼しません。

そして、私は

を変更するかの($ STARTTIME> $オープン){

に何かのように:STARTTIME =(フロート)の$ STARTIME。 $ openと同じです。 if($ starttime> = $ open){

この回答は単なるコメントである必要がありますが、私はまだそれを始めるには十分ではありません。申し訳ありません。