Validating what? What is the format you want to accept? What is the semantic of acceptable values - besides the obvious, that end date has to be greater than start date?
But you can start out from this one:
<script>
function IsValidDate(date){
var D,M,Y;
var re= /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
var match = date.match(re);
if(!match) return false;
Y = 1*match[1];
M = 1*match[2];
D = 1*match[3];
var dt = new Date(Y,M-1,D);
if(dt.getDate()!=D){
return(false);
}
else if(dt.getMonth()!=M-1){
return(false);
}
else if(dt.getFullYear()!=Y){
return(false);
}
return(dt);
}
function ValidateDateInput(id) {
var result = IsValidDate(document.getElementById(id).value);
if (result)
document.getElementById(id).style.color="green";
else
document.getElementById(id).style.color="red";
return result;
}
function validate(){
var date1 = ValidateDateInput("date_1");
var date2 = ValidateDateInput("date_2");
if (date1 && date2 && date1 < date2 )
document.getElementById("dates").style.backgroundColor="green";
else
document.getElementById("dates").style.backgroundColor="red";
}
</script>
<div id="dates">
Date1: <input type="text" id="date_1" name="date_1" value="2012-02-10">
Date2: <input type="text" id="date_2" name="date_2" value="2012-02-12">
<button onclick="validate();">Let's see</button>
</div>