2011-11-29 122 views
37

全部, 我为日期选取器使用jQuery UI。我试图用javascript来检查,但用户输入的日期是过去的。这里是我的表单代码:检查日期是否过去Javascript

<input type="text" id="datepicker" name="event_date" class="datepicker"> 

那么我将如何使用JavaScript检查是为了确保它不是过去的日期?由于

回答

92

$('#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"); 
 
    } 
 
});
<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">

+2

你的意思'变种现在=新的日期()'和'new'后的空间? – jfriend00

+0

这很好,谢谢。 – user1048676

+6

单行:'if($('#datepicker')。datepicker('getDate') davidchambers

-3
function isPrevDate() { 
    alert("startDate is " + Startdate); 
    if(Startdate.length != 0 && Startdate !='') { 
     var start_date = Startdate.split('-'); 
     alert("Input date: "+ start_date); 
     start_date=start_date[1]+"/"+start_date[2]+"/"+start_date[0]; 
     alert("start date arrray format " + start_date); 
     var a = new Date(start_date); 
     //alert("The date is a" +a); 
     var today = new Date(); 
     var day = today.getDate(); 
     var mon = today.getMonth()+1; 
     var year = today.getFullYear(); 
     today = (mon+"/"+day+"/"+year); 
     //alert(today); 
     var today = new Date(today); 
     alert("Today: "+today.getTime()); 
     alert("a : "+a.getTime()); 
     if(today.getTime() > a.getTime()) 
     { 
      alert("Please select Start date in range"); 
      return false; 
     } else { 
      return true; 
     } 
    } 
} 
+1

其中var Startdate来自哪里? –

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

if(Date.parse(datep)-Date.parse(new Date())<0) 
{ 
    // do something 
}