title: Javascript date validation if date entered is in the past
body: <p>Hi all i have made a script to validate a form all i need to do now is check that the date is not in the past . i have used a set of substr however it does not seem to be working please can someone help. below is my code the date part is towards the bottom. </p>
  
  <pre><code>function validateForm() {
  // this part of the script will collate all errors into one should the user leave an input blank
  var Fname=document.forms["myForm"]["fname"].value;
  var Lname=document.forms["myForm"]["lname"].value;
  var address=document.forms["myForm"]["addr1"].value;
  var postcode=document.forms["myForm"]["pcode"].value;
  var email=document.forms["myForm"]["email"].value;
  var number=document.forms["myForm"]["tel"].value;
  var date=document.forms["myForm"]["mydate"].value;
  if (Fname==null || Fname=="" ||Lname==null || Lname=="" ||address==null || address=="" ||!postcode||!email||!number||( myForm.sex[0].checked == false ) &amp;&amp; ( myForm.sex[1].checked == false )||(myForm.age[0].checked == false )&amp;&amp;(myForm.age[1].checked == false )&amp;&amp;(myForm.age[2].checked == false )&amp;&amp;(myForm.age[3].checked == false )&amp;&amp;(myForm.age[4].checked == false )||!date)
    {
    alert("Please make sure all fields are filled or checked correctly out ");
    return false;
    } 
    //end of collating script
    //start of postcode script
   var regPostcode = /^[a-zA-Z]{1,2}\d[\dA-Za-z]? \d[a-zA-Z]{2}$/;
  if (!postcode.match(regPostcode))
  {
      alert("That Post Code is incorrect, correct way mk4 4tr");
      return false;
  }
  //end of postcode script
  //start of email script
  var regEmail =/^\S+@\S+\.\S+$/;
  
  if (!email.match(regEmail))
  {
      alert("That email is incorrect");
      return false;
  }
  
  
  // end of email script
  // start of phone number script
   var phonestring = /^(?:0|\+44)[12378]\d{8,9}$/;
  if (!number.match(phonestring))
  {
      alert(" incorrect,correct format 01908234874");
      return false;
  }
  // end of phone script
  //start of gender script
  
  if ( ( myForm.sex[0].checked == false ) &amp;&amp; ( myForm.sex[1].checked == false ) ) 
  {
  alert ( "Please choose your Gender: Male or Female" ); 
  return false;
  }
  // end of gender script
  //start of age group script
  if((myForm.age[0].checked == false )&amp;&amp;(myForm.age[1].checked == false )&amp;&amp;(myForm.age[2].checked == false )&amp;&amp;(myForm.age[3].checked == false )&amp;&amp;(myForm.age[4].checked == false )){
  alert("please select an age group");
  return false;
  }
  // end of age script
  //start of datefield
  var dateformat=/^(?:(?:31\/(?:0[13578]|1[02])|(?:29|30)\/(?:0[13-9]|1[012])|(?:0[1-9]|1\d|2[0-8])\/(?:0[1-9]|1[0-2]))\/[2-9]\d{3}|29\/02\/(?:[2-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[3579][26])00))$/;
  if (!date.match(dateformat))
  {
      alert("format incorrect use dd/mm/yyyy make sure you are entering correct days to the month remember 30 days have september, april, june &amp; november, only 28 days in february unless leap year next is 2016");
      return false;
  }
  var today = new Date();
  
  var courseYear =string.substr(6,4) // use substr or substring to capture the last four digits
  var courseMonth =string.substr(3,2) // use substr or substring to capture the four and fifth digits
  var courseDay = string.substr(0,2)// use substr or substring to capture the first and second digits
  
  var dateToCompare = new Date(courseYear, courseMonth, courseDay);
  
  if (dateToCompare &lt; today) {
  alert("this date is in the past"); 
  return false; }
  
  //end of date field
  else
  { alert(" Thank you a member of our team will get back to you shortly");
  
  return true;}
  }
  </code></pre>