【问题标题】:How to Validate Date and Time with JavaScript如何使用 JavaScript 验证日期和时间
【发布时间】:2016-03-01 23:06:36
【问题描述】:

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

我遇到的问题是,如果我选择 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()" />

【问题讨论】:

  • 考虑使用 moment.js 进行所有日期操作和验证。
  • 为什么要比较 dates.getTime()?您没有在 select_date 中设置时间。也是一个指针,对于 23:00,值为 24。此外,element.value 返回字符串。不确定这是否会导致问题,但您应该检查它们。

标签: javascript html date time datepicker


【解决方案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));
 }
});

});

在选择的一侧触发警报。

希望对你有帮助

谢谢

【讨论】:

  • 先告诉我一件事你到底想要什么你想验证日期字段还是格式化日期字段
  • 我希望它显示一条我选择昨天日期的警报消息。
【解决方案2】:

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

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

对于您的示例,请将日期设置为 2015-11-25

【讨论】:

  • 我使用的日期格式是“d-M-yy”。我将添加 JQuery 代码
  • @imraanstack1 是否要验证文本字段
【解决方案3】:

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

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

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

您必须阅读一些文档才能达到您的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2015-07-22
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多