tags:

views:

21

answers:

3

anyone can help me....how to validate javascript date for this problem:

user select the start date and end date will be chosen to be more than 90 day from the start date.user can send form if end date below 90day...

from date code :
<input name="fromDate" type="text" id="fromDate" size="10" maxlength="10" onChange="">
<a href="#" name="anchorFrmDate" id="anchorFrmDate" onClick="calFrmDate.select(document.forms[0].fromDate,anchorFrmDate,'dd/MM/yyyy'); return false;">DATE</a>

to date code:
<input name="Todate" type="text" id="Todate" size="10" maxlength="10" onChange="">
a href="#" onClick="calToDte.select(document.forms[0].Todate,'anchorToDte','dd/MM/yyyy'); return false;" name="'anchorToDte'" id="'anchorToDte'"><strong>DATE</strong></a>
A: 

dup? Is the answer here? http://stackoverflow.com/questions/73971/using-javascript-how-do-i-make-sure-a-date-range-is-valid

jskaggz
yup..i has try but not success...function checkDateRange(fromDate, Todate) { var startDate = Date.parse(fromDate); var endDate = Date.parse(Todate); .......... var difference = (endDate - startDate) / (7776000000); if (difference < 0) { alert("The start date must come before the end date."); return false; } if (difference <= 1) { alert("The range must be at least seven days apart."); return false; } return true; }
rick
A: 

Here is a rough sketch:

var startDateText = ...
var NINETY_DAYS = 1000 * 3600 * 24 * 90;
var startDate = new Date(startDateText);
var maxEndDate = startDate.getTime() + NINETY_DAYS;
..
var endDateText = ...
var endDate = new Date(endDateText);
if (endDate.getTime() > maxEndDate) {
    Window.alert("Too late");
}
Dean Povey
A: 

I've tried and my code below ... but do not succeed ... which part that i make Mistake

function checkDateRange(fromDate, Todate) { // Parse the entries var startDate = Date.parse(fromDate); var endDate = Date.parse(Todate); // Make sure they are valid if (isNaN(startDate)) { alert("The start date provided is not valid, please enter a valid date."); return false; } if (isNaN(endDate)) { alert("The end date provided is not valid, please enter a valid date."); return false; } // Check the date range, 86400000 is the number of milliseconds in one day var difference = (endDate - startDate) / (7776000000); if (difference < 0) { alert("The start date must come before the end date."); return false; } if (difference <= 1) { alert("The range must be at least seven days apart."); return false; } return true; }

rick
You need to compare endDate.getTime() and startDate.getTime(). Don't divide by the total number of time just check for if (difference > 7776000000)
Dean Povey