如何确定特定时间是否在javascript中给定的时间范围之间

如何确定特定时间是否在javascript中给定的时间范围之间,javascript,time,date-comparison,datetime-conversion,datetime-comparison,Javascript,Time,Date Comparison,Datetime Conversion,Datetime Comparison,我想在两个时间var open_时间和var close_时间之间检查var check_val 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 open_时间和var close_时间之间检查var check_val

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
}
var open_time=“23:30”;
var关闭时间=“06:30”;
var检查\u val=“02:30”;
if(Date.parse(check_val)>Date.parse(open_time)&&Date.parse(check_val)
结果总是else部分的日期。parse()接受或格式的日期

在您的情况下,它总是返回
NaN

Date.parse("23:30"); // NaN
使用适当的日期格式可以按预期工作:

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
}
var open_time=Date.parse(“2011-10-09T23:30”);
var close_time=日期解析(“2011-10-10T06:30”);
var check_val=Date.parse(“2011-10-10T02:30”);
如果(检查值>打开时间和检查值<关闭时间){
var标志=1;
}否则{
var标志=2
}

您可以创建自己的对象来保存时间,然后编写一个使用时间的函数:

var Time = function(timeString) {
    var t = timeString.split(":");
    this.hour = parseInt(t[0]);
    this.minutes = parseInt(t[1]);
    this.isBiggerThan = function(other) { 
        return (this.hour > other.hour) || (this.hour === other.hour) && (this.minutes > other.minutes);
    };
}

var timeIsBetween = function(start, end, check) {
    return (start.hour <= end.hour) ? check.isBiggerThan(start) && !check.isBiggerThan(end)
    : (check.isBiggerThan(start) && check.isBiggerThan(end)) || (!check.isBiggerThan(start) && !check.isBiggerThan(end));    
}

var openTime = new Time("23:30");
var closeTime = new Time("06:30");
var checkTime = new Time("02:30");

var isBetween  = timeIsBetween(openTime, closeTime, checkTime);
var Time=function(timeString){
var t=timeString.split(“:”);
this.hour=parseInt(t[0]);
this.minutes=parseInt(t[1]);
this.isBiggerThan=函数(其他){
返回(this.hour>other.hour)|(this.hour==other.hour)&&(this.minutes>other.minutes);
};
}
var timeIsBetween=函数(开始、结束、检查){
return(start.hour)您的意思是“06:30”是指第二天23:30的时间吗?