Search This Blog

Wednesday, January 5, 2011

Date validation Java Script

function isValidDate(txtDate) {
           var objDate;  // date object initialized from the txtDate string
           var mSeconds; // milliseconds from txtDate

           // date length should be 10 characters - no more, no less
           if (txtDate.length != 10) return false;

           // extract day, month and year from the txtDate string
           // expected format is YYYY-mm-DD
           // subtraction will cast variables to integer implicitly
           var day   = txtDate.substring(8,10)  - 0;
           var month = txtDate.substring(5,7)  - 1; // because months in JS start with 0
           var year  = txtDate.substring(0,4) - 0;


          // third and sixth character should be /
           if (txtDate.substring(2,3) != '-') return false;
           if (txtDate.substring(5,6) != '-') return false;

          // test year range
           if (year < 999 || year > 3000) return false;

           // convert txtDate to the milliseconds
           mSeconds = (new Date(year, month, day)).getTime();

           // set the date object from milliseconds
           objDate = new Date();
           objDate.setTime(mSeconds);

           // if there exists difference then date isn't valid
           if (objDate.getFullYear() != year)  return false;
           if (objDate.getMonth()    != month) return false;
           if (objDate.getDate()     != day)   return false;

           // otherwise return true
          return true;

    }

No comments: