Date comparison custom functions in JS - Function to check the given date is not greater than current date - Also checks the date is a valid date
Here are some JS custom date comparison functions that may be useful to you.
First one checks the validity of date and compares with current date.
Javascript function to check whether a given date is greater than current date and also checks whether the date is a valid one.
Here is a simple JS function which takes the text-box Id as input, then checks whether the given date is a valid date and then compare the date value with the current date and alerts if the entered date is greater that current date . Here the function expects the input date in dd/mm/yyyy format.
function isValidDate( date_fld_id ){
var dt_fld_obj = document.getElementById( date_fld_id );
var str_date = dt_fld_obj.value;
var dt_bits = str_date.split('/');
var yr= parseInt(dt_bits[2]);
var real_mon = parseInt(dt_bits[1]);
var mon = parseInt(dt_bits[1]) - 1;
var day = parseInt(dt_bits[0]);
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
var d = new Date( yr , mon , day , 0, 0, 0,0 );
var ret = (!isNaN(d) && ( d.getDate() == day && d.getMonth() == mon && d.getFullYear() == yr)) ;
if( ret ){
//if given date is valid one, then do the following
if( yr > yyyy ){
alert("Invalid date. Year should not exceed current year.");
dt_fld_obj.focus();
return false;
}
if( yr == yyyy){
if( real_mon > mm ){
alert("Invalid date. Month should not exceed current month.");
dt_fld_obj.focus();
return false;
}
if( real_mon == mm ){
if( day > dd ){
alert("Invalid date. Date should not exceed current date.");
dt_fld_obj.focus();
return false;
}
}
}
}else{
alert("Invalid Date. Please enter a valid date in dd/mm/yyyy format. ");
dt_fld_obj.focus();
return false;
}
return true;
}
var dt_fld_obj = document.getElementById( date_fld_id );
var str_date = dt_fld_obj.value;
var dt_bits = str_date.split('/');
var yr= parseInt(dt_bits[2]);
var real_mon = parseInt(dt_bits[1]);
var mon = parseInt(dt_bits[1]) - 1;
var day = parseInt(dt_bits[0]);
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
var d = new Date( yr , mon , day , 0, 0, 0,0 );
var ret = (!isNaN(d) && ( d.getDate() == day && d.getMonth() == mon && d.getFullYear() == yr)) ;
if( ret ){
//if given date is valid one, then do the following
if( yr > yyyy ){
alert("Invalid date. Year should not exceed current year.");
dt_fld_obj.focus();
return false;
}
if( yr == yyyy){
if( real_mon > mm ){
alert("Invalid date. Month should not exceed current month.");
dt_fld_obj.focus();
return false;
}
if( real_mon == mm ){
if( day > dd ){
alert("Invalid date. Date should not exceed current date.");
dt_fld_obj.focus();
return false;
}
}
}
}else{
alert("Invalid Date. Please enter a valid date in dd/mm/yyyy format. ");
dt_fld_obj.focus();
return false;
}
return true;
}
Javascript function to check whether the given date is a valid date
This simple JS function takes the text-box Id as input, then checks whether the given date is a valid date
function isValidDate( date_fld_id ){
var dt_fld_obj = document.getElementById( date_fld_id );
var str_date = dt_fld_obj.value;
var dt_bits = str_date.split('/');
var yr= parseInt(dt_bits[2]);
var real_mon = parseInt(dt_bits[1]);
var mon = parseInt(dt_bits[1]) - 1;
var day = parseInt(dt_bits[0]);
var d = new Date( yr , mon , day , 0, 0, 0,0 );
var ret = (!isNaN(d) && ( d.getDate() == day && d.getMonth() == mon && d.getFullYear() == yr)) ;
if( ret ){
//if given date is valid one, then do the following
alert("Hey!....the date entered is a valid one :)");
return true;
}else{
alert("Invalid Date. Please enter a valid date in dd/mm/yyyy format. ");
dt_fld_obj.focus();
return false;
}
}
var dt_fld_obj = document.getElementById( date_fld_id );
var str_date = dt_fld_obj.value;
var dt_bits = str_date.split('/');
var yr= parseInt(dt_bits[2]);
var real_mon = parseInt(dt_bits[1]);
var mon = parseInt(dt_bits[1]) - 1;
var day = parseInt(dt_bits[0]);
var d = new Date( yr , mon , day , 0, 0, 0,0 );
var ret = (!isNaN(d) && ( d.getDate() == day && d.getMonth() == mon && d.getFullYear() == yr)) ;
if( ret ){
//if given date is valid one, then do the following
alert("Hey!....the date entered is a valid one :)");
return true;
}else{
alert("Invalid Date. Please enter a valid date in dd/mm/yyyy format. ");
dt_fld_obj.focus();
return false;
}
}