Search code examples
javascripttimedate-comparisondatetime-conversiondatetime-comparison

How to determine if the specific time is between given time range in javascript


i want to check var check_val in between two time var open_time and var close_time

var open_time  = "23:30";
var close_time = "06:30";
var check_val  ="02:30";
if(Date.parse ( check_val ) > Date.parse ( open_time ) && Date.parse ( check_val ) < Date.parse ( close_time )){
    var flag=1;
} else { 
    var flag=2
}

the result is always else part


Solution

  • Date.parse() accepts dates in RFC2822 or ISO8601 formats.

    In your case, it always returns NaN.

    Date.parse("23:30"); // NaN
    

    Using the appropriate Date format works as expected:

    var open_time = Date.parse("2011-10-09T23:30");
    var close_time = Date.parse("2011-10-10T06:30");
    var check_val = Date.parse("2011-10-10T02:30");
    
    if( check_val > open_time && check_val < close_time ) {
        var flag=1;
    } else { 
        var flag=2
    }