我有一个存储时间值的变量。
var cabtime = ["09:30:00"];
可变时间值是24小时制。这意味着02:30:0PM
将以14:30:00
的形式出现。
我想检查可变时间是否在08:00AM
至10:00AM
窗口下。如果是,那么我将采取措施。
这方面有什么指针吗?
答案 0 :(得分:1)
您可以使用以下方法将时间解析为午夜以来的秒数:
var cabtime = ["HH:MM:SS"] // in 24hr time
function parseTime (string) {
parts = string.split(':').map(x => parseInt(x))
seconds = parts[0] * 3600 + parts[1] * 60 + parts[0]
return seconds
}
然后您可以解析时间和上下限,并使用以下方法进行测试:
time = parseTime(cabtime[0])
lower = parseTime('08:00:00')
upper = parseTime('10:00:00')
if (time >= lower && time <= upper) {
print('Inside the range')
}
答案 1 :(得分:0)
通过将字符串转换为Date对象并进行比较,可以轻松解决该问题。
var cabtime = ["09:30"];
function checkTimeRange(time, from, to, reldate) {
if (undefined === reldate) {
reldate = '0000T'; // the date the time strings are related to
}
let dtime = new Date(reldate + time);
let dfrom = new Date(reldate + from);
let dto = new Date(reldate + to);
return dfrom <= dtime && dtime <= dto;
}
checkTimeRange(cabtime[0], '08:00', '10:00'); // returns true
如果您有完整的日期(例如'2019-07-25T09:30:00'),而不仅仅是时钟时间,则应为参数'reldate'提供一个空字符串。
* 更新:将错误的日期格式更改为标准格式
* 更新:再次将日期格式更改为更精美