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'));
我正在尝试创建一个动态日历。 我有开放和关闭时间。
我想循环获取这两个时间之间的所有半小时时段。
目标是创建一个 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'));