如何使用JavaScript验证日期和时间

时间:2015-11-27 17:50:12

标签: javascript html date time datepicker

如果选择了错误的日期和/或时间,则下面的代码假设显示一个警告框。

我遇到的问题是,如果我选择25/11/2015并选择11:00它显示“请更改日期或时间”。如果我然后选择25/11/2015并选择21:00它会显示“那很好”。

该功能忽略了日期,只是检查时间。

如果用户选择已经消失的时间或者今天之前的日期,则应显示消息“请更改日期或时间”。

我希望我能帮助解决这个问题。提前谢谢。

function myFunction() {
  var today = new Date();
  var select_text = document.getElementById("datepicker-leave").value;
  var select_date = new Date(select_text);
  var select_time = document.getElementById("leavedrop").value;
  var curr_time = today.getHours() + 1;

  if ((select_date.getTime() <= today.getTime()) && select_time < curr_time) {
    alert("Please change Date or Time")
  } else {
    alert("That's Fine")
  }
}

<script>
  $(function() { //datepickers
      $( "#datepicker-leave).datepicker({            
        dateFormat: 'd-M-yy'}); 
   });
</script>
<input type="text" id="datepicker-leave">

<select id="leavedrop">
  <option value="0">00:00</option>
  <option value="1">01:00</option>
  <option value="2">02:00</option>
  <option value="3">03:00</option>
  <option value="4">04:00</option>
  <option value="5">05:00</option>
  <option value="6">06:00</option>
  <option value="7">07:00</option>
  <option value="8">08:00</option>
  <option value="9">09:00</option>
  <option value="10">10:00</option>
  <option value="11">11:00</option>
  <option value="12">12:00</option>
  <option value="13">13:00</option>
  <option value="14">14:00</option>
  <option value="15">15:00</option>
  <option value="16">16:00</option>
  <option value="17">17:00</option>
  <option value="18">18:00</option>
  <option value="19">19:00</option>
  <option value="20">20:00</option>
  <option value="21">21:00</option>
  <option value="22">22:00</option>
  <option value="24">23:00</option>
</select>

<input type="button" value="Submit" onClick="myFunction()" />

3 个答案:

答案 0 :(得分:1)

尝试以下日期结构

**$( "#date" ).datepicker({ dateFormat: 'dd/mm/yy' });**

然后试试这个

$(function() {
$( "#date" ).datepicker({ 
 dateFormat: 'd MM, yy',
 onSelect: function(dateText, inst) {
     var stop = dateText.indexOf(',');
    alert( dateText.substring(0, stop));
 }
});

});

在选择旁边,您会触发警报。

我希望这应该有所帮助

由于

答案 1 :(得分:0)

它不起作用,因为您没有以适当的格式输入日期

您需要使用(YYYY-MM-DD)格式才能使其正常工作

您的示例将日期设为2015-11-25

答案 2 :(得分:0)

似乎JavaScript中的日期对象相当弱,没有任何添加。 我找到了非常有用的库DateJS,它为您提供了一些解决问题的强大方法。

以下是Datejs的一个小指南。

例如,您可以使用equals方法:Date.equals(Date.today(), pickedDate());

您必须仔细阅读文档才能实现目标。