下拉列表中的日期时间验证PHP

时间:2019-05-17 04:46:36

标签: php datetime

我正在下拉列表中进行验证,该列表包含数据库中的值。现在,我可以在下拉列表中查看值,但是现在我不得不对其进行验证。下拉列表中的值采用日期时间格式,例如(2019-04-02 07:21:34)。

现在,我有两个带有标签“ To:”和“ From:”的下拉列表,基本上我想做的是,如果我在第一个下拉列表中选择了一个日期,可以说2019-02-02,我选择的第二个选项是2019-01-01,当我按下一个按钮时,它应该无效,因为它向后显示,并且应该显示一条消息,表明我输入的日期无效。我对处理方法感到困惑,因为格式包含连字符和冒号。

<?php

  $hostname = "localhost";
  $username = "root";
  $password = "";
  $databaseName = "it180p";

  $connect = mysqli_connect($hostname, $username, $password, $databaseName);
  $query = "SELECT * FROM `incidentreport` ORDER BY dateTime DESC";


  $result1 = mysqli_query($connect, $query);


  $result2 = mysqli_query($connect, $query);

  $options = "";

  while($row2 = mysqli_fetch_array($result2))
  {
      $options = $options."<option>$row2[6]</option>";
  }

?>
        To:
        <select>
          <option disabled selected value> - select start of date - </option>
            <?php while($row1 = mysqli_fetch_array($result1)):;?>          
            <option value="<?php echo $row1[0];?>"><?php echo $row1[6];?></option>
            <?php endwhile;?>
        </select>
        From:
        <select>
          <option disabled selected value> - select end of date - </option>
            <?php echo $options;?>
        </select>

2 个答案:

答案 0 :(得分:1)

包括js,并在任何下拉菜单中调用change事件。
首先,为您的下拉列表“ from_date”和“ to_date”分配ID。

选择任何淹没值时,以上代码将运行。它将检查两个日期都不为空,然后它将继续。在下一种情况下,如果from_date大于或等于to_date,则会显示一条警报消息。

$(document).ready(function(){


  $('#from_date, #to_date').on('change', function(){


     var from_date =  $('#from_date').val();
     var to_date=  $('#to_date').val();

     // if both the fields are not empty
     if((Date.parse(from_date ) >= Date.parse(to_date))){

         alert("End date should be greater than Start date");
         //if End date is not value, deselect the selected date
         $('#to_date').val('');

         return false;
     }

  });// Change

});// Ready
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Start Date<br>
        <select id="from_date">
          <option> - select start of date - </option>
           <option value="2019-01-01"> 2019-01-01 </option>
           <option value="2019-01-15"> 2019-01-15 </option>
           <option value="2019-01-28"> 2019-01-28 </option>
        </select>
        
        
        <br><br>End Date<br>
        <select id="to_date">
          <option> - select end of date - </option>
           <option value="2017-08-29"> 2017-08-29 </option>
           <option value="2018-04-15"> 2018-04-15 </option>
           <option value="2019-05-17"> 2019-05-17 </option>
        </select>

答案 1 :(得分:0)

它是示例,您可以编写一个JavaScript代码,将日期时间转换为时间戳,使用时间戳进行比较:

<form asp-controller="Login" asp-action="Verify" method="post">

按下提交按钮时,调用此功能