Reputation: 4886
I have created a function in javascript to check if the time is valid or not, i.e if the new time (has start and end time) is in between a fixed time (has start and end time), it is valid, otherwise invalid.
My code is as given below
Here it is giving valid when i give invalid times
var fixedTime = {start : '2014-11-13T09:00:00', end : '2014-11-13T13:00:00'};
var newTime = {start : '2014-11-13T06:30:00', end : '2014-11-13T08:30:00'};
if(checkDates(fixedTime, newTime))
{
window.alert("Valid");
}
else
{
window.alert("Invalid");
}
function checkDates(fixedTime, newTime)
{
var returnBoolean = true;
if(((new Date(newTime.start).getTime()) <= (new Date(fixedTime.start).getTime()) && (new Date(newTime.start).getTime()) >= (new Date(fixedTime.end).getTime())) || ((new Date(newTime.end).getTime()) <= (new Date(fixedTime.start).getTime()) && (new Date(newTime.end).getTime()) >= (new Date(fixedTime.end).getTime())))
{
returnBoolean = false;
}
return returnBoolean;
}
can anyone please tell me some solutions for this
Upvotes: 0
Views: 43
Reputation: 39532
No need for such enormous complexity. You only need to make two comparisons:
var fixedTime = {
start: new Date('2014-11-13T09:00:00').getTime(),
end: new Date('2014-11-13T13:00:00').getTime()
};
var newTime = {
start: new Date('2014-11-13T06:30:00').getTime(),
end: new Date('2014-11-13T08:30:00').getTime()
};
if (checkDates(fixedTime, newTime)) {
alert("Valid");
} else {
alert("Invalid");
}
function checkDates(fixedTime, newTime) {
return newTime.start > fixedTime.start && newTime.end < fixedTime.end;
}
Upvotes: 3