我正在尝试查看 timeNow 是否介于开启和关闭的时间范围内:
var timeFormat2 = "HH:mm:ss";
var timeNow = "23:12:00"; //(11:12:00 pm)
var opening = "08:00:00"; //(08:00:00 am) morning time
var closing = "00:12:00"; //midnight time (i.e 12:12:00 am)
var isAvailable = moment(timeNow, timeFormat2).isBetween(moment(opening, timeFormat2), moment(closing, timeFormat2));
console.log("will show false >>>> ", isAvailable); //it shows 'false'
var closing1 = "23:45:00";
var isAvailable1 = moment("23:12:00", timeFormat2).isBetween(moment(opening, timeFormat2), moment(closing1, timeFormat2));
console.log("Should show true >>>> ", isAvailable1);
这是一个查看它的JSfiddle:
答案 0 :(得分:1)
你需要引入“第二天”的概念。在这里,我将日期设置为该月的第一天。如果收盘时间在开盘时间之前,那么我将收盘时间移至该月的第二天。
function isAvailable(opening, closing, now){
var openingTime = moment(opening, timeFormat2).date(1);
var closingTime = moment(closing, timeFormat2).date(1);
var nowTime = moment(now, timeFormat2).date(1);
if(closingTime.isBefore(openingTime)){
closingTime.date(2);
}
return nowTime.isBetween(openingTime, closingTime);
}
答案 1 :(得分:1)
没有足够的数据来计算。
00:12:00
表示在当前日期开放时间前不到8小时的12分钟
因此,23:12:00
将超出范围。
这将有助于使用不同类型的数据:
以便能够确定 - “现在的时间”是否轻松落入时间间隔内。