在JavaScript中检查当前时间是否介于两个给定时间之间

Sun*_*nil 2 javascript date

我有两个变量叫做'startTime'和'endTime'.我需要知道当前时间是否介于startTime和EndTime之间.我怎么才使用JavaScript?

var startTime = '15:10:10';
var endTime = '22:30:00';
var currentDateTime = new Date(); 
//is current Time between startTime and endTime ???
Run Code Online (Sandbox Code Playgroud)

更新1:

我能够使用以下代码获得此信息.您可以查看代码:https://jsfiddle.net/sun21170/d3sdxwpb/1/

var dt = new Date();//current Date that gives us current Time also

var startTime = '03:30:20';
var endTime = '23:50:10';

var s =  startTime.split(':');
var dt1 = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(),
                   parseInt(s[0]), parseInt(s[1]), parseInt(s[2]));

var e =  endTime.split(':');
var dt2 = new Date(dt.getFullYear(), dt.getMonth(),
                   dt.getDate(),parseInt(e[0]), parseInt(e[1]), parseInt(e[2]));

alert( (dt >= dt1 && dt <= dt2) ? 'Current time is between startTime and endTime' : 
                                  'Current time is NOT between startTime and endTime');
alert ('dt = ' + dt  + ',  dt1 = ' + dt1 + ', dt2 =' + dt2)
Run Code Online (Sandbox Code Playgroud)

Jam*_*Hay 8

如果您可以依靠正确格式的字符串,则可以执行以下操作:

var setDateTime = function(date, str){
    var sp = str.split(':');
    date.setHours(parseInt(sp[0],10));
    date.setMinutes(parseInt(sp[1],10));
    date.setSeconds(parseInt(sp[2],10));
    return date;
}

var current = new Date();

var c = current.getTime()
  , start = setDateTime(new Date(current), '15:10:10')
  , end = setDateTime(new Date(current), '22:30:00');

return (
    c > start.getTime() && 
    c < end.getTime());
Run Code Online (Sandbox Code Playgroud)

  • 晚了 4 年半,但针对比赛条件进行了更新 (4认同)

moh*_*him 8

var startTime = '15:10:10';
var endTime = '22:30:00';

currentDate = new Date()   

startDate = new Date(currentDate.getTime());
startDate.setHours(startTime.split(":")[0]);
startDate.setMinutes(startTime.split(":")[1]);
startDate.setSeconds(startTime.split(":")[2]);

endDate = new Date(currentDate.getTime());
endDate.setHours(endTime.split(":")[0]);
endDate.setMinutes(endTime.split(":")[1]);
endDate.setSeconds(endTime.split(":")[2]);


valid = startDate < currentDate && endDate > currentDate
Run Code Online (Sandbox Code Playgroud)

  • 如果你有像 startTime = "23:00:00" 和 endTime = "3:00:00" 这样的东西怎么办?也就是说,时间段是否跨越午夜? (2认同)