<!-- TWO STEPS TO INSTALL DATE DIFFERENCE: 
 
  1.  Copy the coding into the HEAD of your HTML document 
  2.  Add the last code into the BODY of your HTML document  --> 
 
<!-- STEP ONE: Paste this code into the HEAD of your HTML document  --> 
 
<HEAD> 
 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- Original:  Ronnie T. Moore --> 
<!-- Web Site:  The JavaScript Source --> 
 
<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! http://javascript.internet.com --> 
 
<!-- Begin 
function isValidDate(dateStr) { 
// Date validation function courtesty of  
// Sandeep V. Tamhankar (stamhankar@hotmail.com) --> 
 
// Checks for the following valid date formats: 
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY 
 
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year 
 
var matchArray = dateStr.match(datePat); // is the format ok? 
if (matchArray == null) { 
alert(dateStr + " Date is not in a valid format.") 
return false; 
} 
month = matchArray[1]; // parse date into variables 
day = matchArray[3]; 
year = matchArray[4]; 
if (month < 1 || month > 12) { // check month range 
alert("Month must be between 1 and 12."); 
return false; 
} 
if (day < 1 || day > 31) { 
alert("Day must be between 1 and 31."); 
return false; 
} 
if ((month==4 || month==6 || month==9 || month==11) && day==31) { 
alert("Month "+month+" doesn't have 31 days!") 
return false; 
} 
if (month == 2) { // check for february 29th 
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
if (day>29 || (day==29 && !isleap)) { 
alert("February " + year + " doesn't have " + day + " days!"); 
return false; 
   } 
} 
return true; 
} 
 
function isValidTime(timeStr) { 
// Time validation function courtesty of  
// Sandeep V. Tamhankar (stamhankar@hotmail.com) --> 
 
// Checks if time is in HH:MM:SS AM/PM format. 
// The seconds and AM/PM are optional. 
 
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/; 
 
var matchArray = timeStr.match(timePat); 
if (matchArray == null) { 
alert("Time is not in a valid format."); 
return false; 
} 
hour = matchArray[1]; 
minute = matchArray[2]; 
second = matchArray[4]; 
ampm = matchArray[6]; 
 
if (second=="") { second = null; } 
if (ampm=="") { ampm = null } 
 
if (hour < 0  || hour > 23) { 
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)"); 
return false; 
} 
if (hour <= 12 && ampm == null) { 
if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) { 
alert("You must specify AM or PM."); 
return false; 
   } 
} 
if  (hour > 12 && ampm != null) { 
alert("You can't specify AM or PM for military time."); 
return false; 
} 
if (minute < 0 || minute > 59) { 
alert ("Minute must be between 0 and 59."); 
return false; 
} 
if (second != null && (second < 0 || second > 59)) { 
alert ("Second must be between 0 and 59."); 
return false; 
} 
return true; 
} 
 
function dateDiff(dateform) { 
date1 = new Date(); 
date2 = new Date(); 
diff  = new Date(); 
 
if (isValidDate(dateform.firstdate.value) && isValidTime(dateform.firsttime.value)) { // Validates first date  
date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value); 
date1.setTime(date1temp.getTime()); 
} 
else return false; // otherwise exits 
 
if (isValidDate(dateform.seconddate.value) && isValidTime(dateform.secondtime.value)) { // Validates second date  
date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value); 
date2.setTime(date2temp.getTime()); 
} 
else return false; // otherwise exits 
 
// sets difference date to difference of first date and second date 
 
diff.setTime(Math.abs(date1.getTime() - date2.getTime())); 
 
timediff = diff.getTime(); 
 
weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7)); 
timediff -= weeks * (1000 * 60 * 60 * 24 * 7); 
 
days = Math.floor(timediff / (1000 * 60 * 60 * 24));  
timediff -= days * (1000 * 60 * 60 * 24); 
 
hours = Math.floor(timediff / (1000 * 60 * 60));  
timediff -= hours * (1000 * 60 * 60); 
 
mins = Math.floor(timediff / (1000 * 60));  
timediff -= mins * (1000 * 60); 
 
secs = Math.floor(timediff / 1000);  
timediff -= secs * 1000; 
 
dateform.difference.value = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds"; 
 
return false; // form should never submit, returns false 
} 
//  End --> 
</script> 
</HEAD> 
 
<!-- STEP TWO: Copy this code into the BODY of your HTML document  --> 
 
<BODY> 
 
<center> 
<form onSubmit="return dateDiff(this);"> 
<table> 
<tr><td> 
<pre> 
First Date:   Date: <input type=text name=firstdate value="" size=10 maxlength=10>  (MM/DD/YYYY format) 
              Time: <input type=text name=firsttime value="" size=10 maxlength=10>  (HH:MM:SS format) 
 
Second Date:  Date: <input type=text name=seconddate value="" size=10 maxlength=10>  (MM/DD/YYYY format) 
              Time: <input type=text name=secondtime value="" size=10 maxlength=10>  (HH:MM:SS format) 
 
<center><input type=submit value="Calculate Difference!"> 
 
Date Difference:<br> 
<input type=text name=difference value="" size=60> 
</center> 
</pre> 
</td></tr> 
</table> 
</form> 
</center> 
 
<p><center> 
<font face="arial, helvetica" SIZE="-2">Free JavaScripts provided<br> 
by <a href="http://javascriptsource.com">The JavaScript Source</a></font> 
</center><p>
  
previous page
 
  |