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

问题描述 投票:0回答:3

如果选择了不正确的日期和/或时间,下面的代码将会显示一个警告框。

我遇到的问题是,如果我选择 25/11/2015 并选择 11:00 它会显示“请更改日期或时间”。如果我选择 25/11/2015 并选择 21:00,它会显示“That's Fine”。

该功能忽略日期,仅检查时间。

如果用户选择已经过去的时间或今天之前的日期,它应该显示一条消息“请更改日期或时间”。

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()" />

javascript html date time datepicker
3个回答
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));
     }
    });
});

在选择的一侧触发警报。


0
投票

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

您需要使用

(YYYY-MM-DD)
格式才能使其工作

对于您的示例,将日期设置为

2015-11-25


0
投票

JavaScript 中的日期对象在没有任何添加的情况下似乎非常弱。 我发现了非常有用的库DateJS,它为您提供了一些强大的方法来解决您的问题。

这里还有来自 Datejs 的小指南。

例如,您可以使用 equals 方法:

Date.equals(Date.today(), pickedDate());

您必须阅读一些文档才能实现您的目标。

© www.soinside.com 2019 - 2024. All rights reserved.