Javascript 香草中的拆分时间数据

split time data in Javascript vanilla

我正在尝试创建一个动态日历。 我有开放和关闭时间。

我想循环获取这两个时间之间的所有半小时时段。

目标是创建一个 div 包含这些计划的列表。

请问您有什么方法、想法可以帮助我实现这个目标吗?

我的数据在 json 文档中,如下所示:

"minMax": {
                "min": "07:00",
                "max": "18:00"
            }

(我已经检索到日期)我的目标是显示时间表。

const minHour = week[weekNumber].minMax.min // => 07:00
const maxHour = week[weekNumber].minMax.max // => 18:00

问题是我不知道如何在最小时和最小时之间按半小时划分时间表。

感谢您的帮助和时间。

根据您提供的信息,我想出了这个生成半小时时段的解决方案。如果需要进行任何更正或处理边缘情况,请告诉我。

function halfHourSlots(min, max) {
  let slots = [];

  let [minHour] = min.split(':');
  let [maxHour] = max.split(':');

  minHour = Number(minHour);
  maxHour = Number(maxHour);

  while (minHour != maxHour) {
    let halfHourString = `${minHour}:30`.padStart(
      2,
      '0'
    );
    minHour += 1;

    let hourString = `${
      minHour == 24 ? '00' : minHour
    }:00`.padStart(2, '0');

    slots.push(halfHourString);
    slots.push(hourString);
  }

  return slots;
}

console.log(halfHourSlots('07:00', '18:00'));

你可以试试这个,

var convertValue  = time => ((hour,min) => hour*2 + min/30)(...time.split(':').map(parseFloat)),
    toTime = int => [Math.floor(int/2), int%2 ? '30' : '00'].join(':'),
    range  = (from, to) => Array(to-from+1).fill().map((_,i) => from + i),
    halfHourInterval = (t1, t2) => range(...[t1, t2].map(convertValue)).map(toTime);

console.log(halfHourInterval('07:00', '15:30'));