• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 369
  • Last Modified:

Calculate date difference in YMD format "20081008"

On a submit page, I have 2 Select's - startdate, enddate.
Each holds a calculated value and allows the user to select a startdate and a enddate, submit the form and retrieve data.

Now I need to verify the form before submitting it, that startdate < enddate AND the difference between the dates are <= 4 weeks/31 days.

The function I've made so far is below - but I need osme help on how to verify the max. date difference.


function valiDates(){
		var maxtime = 60*60*24*31;
		var btn = document.getElementById("submit");
		var strSd = document.getElementById("startdate").value;
		var strEd = document.getElementById("enddate").value;
		var sd = new Date( strSd.substring(0,3) +"/"+ strSd.substring(4,5) +"/"+ strSd.substring(6,7) );
		var ed = new Date( strEd.substring(0,3) +"/"+ strEd.substring(4,5) +"/"+ strEd.substring(6,7) );
		if (sd > ed ){
			btn.disabled = true;
			btn.value = 'Slut dato skal være senere end start dato, max 4 uger statistik kan dannes !';
			document.getElementById("alert1").style.visibility = 'visible';
			} else {
			btn.disabled = false;
			btn.value = 'Hent data';
			document.getElementById("alert1").style.visibility = 'hidden';

Open in new window

1 Solution
just add this at the bottom of your function and your good to go
//Set 1 day in milliseconds
var one_day=1000*60*60*24;
//Calculate difference btw the two dates, and convert to days
var dif = Math.ceil((ed.getTime()-sd.getTime())/one_day);
if(dif > 31) {
     btn.disabled = true;
     btn.value = '...!';
     document.getElementById("alert1").style.visibility = 'visible';

Open in new window

trg_dkAuthor Commented:
YOU da' man :-)

Thanks for your quick solution - works perfectly !!!

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now