Alex Man
Alex Man

Reputation: 4886

checking new time valid within a fixed time using javascript

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.

Working JSFiddle

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

Answers (1)

SomeKittens
SomeKittens

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;
}

Fiddle

Upvotes: 3

Related Questions