首页 > 解决方案 > 在 JavaScript 中创建时隙的问题

问题描述

我将创建每个两个小时的时间段。

start_time=10:00
end_time=24:00

喜欢 [ [10:00,12:00], [12:00,14:00], [14:00,16:00] ] ...

我正在使用该功能:

function calculate_time_slot(start_time, end_time, interval = "120") {
    var i, formatted_time;
    var time_slots = new Array();
    for (var i = start_time; i <= end_time; i = i + interval) {
        formatted_time = convertHours(i);
        time_slots.push(formatted_time);
    }
    return time_slots;
}

但它会产生这样的结果:

[
  '10:00', '12:00',
  '14:00', '16:00',
  '18:00', '20:00',
  '22:00', '24:00'
]

如何使配对得到想要的结果,例如:

[ [10:00,12:00], [12:00,14:00], [14:00,16:00] ] ...

标签: javascriptarrays

解决方案


在循环内部,计算两个格式化时间:一个用于槽的开始,一个用于槽的结束:

function calculate_time_slot(startTime, endTime, interval = 120) {
  const timeSlots = [];
  for (let i = startTime; i < endTime; i += interval) {
    const formattedBegin = convertHours(i);
    const formattedEnd = convertHours(i + interval);
    timeSlots.push([formattedBegin, formattedEnd]);
  }
  return timeSlots;
}

确保设置interval为数字,而不是字符串,以便添加而不是连接。


推荐阅读