在没有提交表格的情况下检查日期是否过去

我有这个代码,我想检查一个日期是否过去。 我希望在表单提交之前输入日期后立即检查。

  function checkDate() { var selectedDate = document.getElementById('datepicker').value; var now = new Date(); if (selectedDate < now) { alert("Date must be in the future"); } }  

这不起作用,如果我输入过去的日期(例如2014-12-03),它不会显示警报。

您需要做的就是使用Date构造函数new Date("2014-06-12")生成的字符串转换为Date

  function checkDate() { var selectedText = document.getElementById('datepicker').value; var selectedDate = new Date(selectedText); var now = new Date(); if (selectedDate < now) { alert("Date must be in the future"); } } 
  

date()函数返回一个字符串。 首先尝试使用Date.parse()函数将两个日期转换为整数:

   

您的代码非常接近,请尝试以下方法:

 var selectedDate = $('#datepicker').datepicker('getDate'); var now = new Date(); if (selectedDate < now) { // selected date is in the past } 

对于那些使用type =“date”(用HTML5引入)而不是type =“text”的人来说,可以这样做:

  function checkDate() { var date = this.value; if(date.valueAsDate <= new Date()) { //Date in the past } else { //Date in the future } }