检查“当前时间”是否在 2 次之间。但还要检查前一天的夜晚情况

2024-01-09

例如,我有 2 次:10:00 和 1:00 现在我想检查当前时间...是否在 javascript 中的这 2 次之间。

问题是,在这种情况下,关门时间是第二天,因此它早于开门时间。由于某种原因我无法解决这个问题,我该如何以正确的方式做到这一点。

我发现这可以解决它:

    var start = new Date(2012,6,20,13).getTime();
var now = new Date().getTime();
var end = new Date(2012,6,21,2).getTime();

if( (start < now ) && (now < end )) {
  console.log("opened");
}
else {
 console.log("closed");
}

但我该如何使用 10:00 和 2:00 等 2 种字符串格式来做到这一点,因为我没有看到单独设置时间的选项

var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

您可以使用像这样的简单函数将时间转换为自 0:00 以来的分钟数:

function getMinutes(str) {
    var time = str.split(':');
    return time[0]*60+time[1]*1;
}

还有一个类似的函数将当前时间转换为相同的形式以便进行比较:

function getMinutesNow() {
    var timeNow = new Date();
    return timeNow.getHours()*60+timeNow.getMinutes();
}

然后转换开盘时间和关门时间,如果关门时间早于开盘时间,则加上 24 小时。

var now = getMinutesNow();
var start = getMinutes('10:00');
var end = getMinutes('2:00');
if (start > end) end += getMinutes('24:00');

if ((now > start) && (now < end)) { // your code here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查“当前时间”是否在 2 次之间。但还要检查前一天的夜晚情况 的相关文章

随机推荐