检查日期是否在过去的Javascript中

use*_*676 50 javascript validation jquery jquery-ui date

全部,我正在使用日期选择器的jQuery UI.我试图用javascript检查,但用户输入的日期是过去的.这是我的表单代码:

<input type="text" id="datepicker" name="event_date" class="datepicker">
Run Code Online (Sandbox Code Playgroud)

那么我如何用Javascript检查这一点以确保它不是过去的日期?谢谢

Ama*_*dan 115

$('#datepicker').datepicker().change(evt => {
  var selectedDate = $('#datepicker').datepicker('getDate');
  var now = new Date();
  now.setHours(0,0,0,0);
  if (selectedDate < now) {
    console.log("Selected date is in the past");
  } else {
    console.log("Selected date is NOT in the past");
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<input type="text" id="datepicker" name="event_date" class="datepicker">
Run Code Online (Sandbox Code Playgroud)

  • 单行:`if($('#datepicker').datepicker('getDate')<new Date){...}`.使用`new`关键字调用函数时,可以省略括号. (6认同)
  • 你可以跳过```now```变量.通过使用```(selectedDate.getTime()<Date.now())``` (3认同)
  • 如果您只是查看日期(没有时间)那么您应该比较今天的开头,就像这样`var now =(new Date()).setHours(0,0,0,0);` (3认同)
  • @IvanYurchenko:`.val()`返回一个字符串,字面意思是`<input>`.`.datepicker('getDate')`返回一个`Date`对象. (2认同)

小智 9

var datep = $('#datepicker').val();

if(Date.parse(datep)-Date.parse(new Date())<0)
{
   // do something
}
Run Code Online (Sandbox Code Playgroud)