当前时间在javascript多维数组

Current Time Within javascript multi dimension array

本文关键字:数组 javascript 时间      更新时间:2023-09-26

我有一个时隙数组,其中包含从一天开始到结束的所有时隙(30分钟部分)。

var timeslots = new Array();
timeslots['0'] = new Array( current.setHours(0,0,0,0), current.setHours(0,29,59,0));
timeslots['1'] = new Array( current.setHours(0,30,0,0), current.setHours(0,59,59,0));
....

我想要能够做的是从一个特定的时间(使用当前的日期/时间现在)为它搜索数组,并让我哪一个时间段内的当前时间。所以如果是00:22:00那么它就是时隙"0"

我需要定期检查这个(最好每秒钟),这样我就可以有一个计时器倒计时,直到下一个时间段…因此,如果当前时间与上面相同,它会告诉我它当前在时隙0,下一个时隙将在8分钟后开始....倒计时…

https://jsfiddle.net/mhs8bvcj/2/

您可以简单地使用for循环遍历timeslots,并测试当前时间戳是否在范围内:

function findTimeslot(time) {
  for (var i = 0; i < timeslots.length; i++) {
    if (timeslots[i][0] <= time && time <= timeslots[i][1]) {
      return i;
    }
  }
  return -1;
}

要获取当前时隙的索引,使用当前时间戳调用上述函数:

findTimeslot(new Date().getTime());

计算剩余时间,用当前时隙的结束时间减去当前时间戳。

var remainingMilliseconds = currentTimeslot[1] - new Date().getTime();

更新小提琴:https://jsfiddle.net/9g8o632f/1/

您可以使用以下简单的数学方法获得索引:

var now = new Date();
var idx = (now.getHours() * 2) + parseInt(now.getMinutes() / 30);

我已经更新了小提琴,看看它:https://jsfiddle.net/mhs8bvcj/3/