使用js语法,起始时间fetchStartTime到结束时间fetchEndTime每间隔fetchInterval分钟为一个时间段, 时间段的格式例如:8:00~10:00,输出全部时间段,且筛选早于当前时间的时间段添加属性disabled为true
时间: 2024-05-01 13:21:26 浏览: 115
以下是实现该需求的JavaScript代码:
```js
const fetchStartTime = '8:00';
const fetchEndTime = '18:00';
const fetchInterval = 60; // 间隔60分钟
const now = new Date();
const currentHour = now.getHours();
const currentMinute = now.getMinutes();
const currentTime = `${currentHour}:${currentMinute}`;
const timeSlots = [];
let fetchTime = fetchStartTime;
while (fetchTime < fetchEndTime) {
const startTime = fetchTime;
const endTime = addMinutes(fetchTime, fetchInterval);
const timeSlot = `${startTime}~${endTime}`;
const isDisabled = timeSlot < currentTime;
timeSlots.push({ timeSlot, isDisabled });
fetchTime = endTime;
}
console.log(timeSlots);
function addMinutes(time, minutes) {
const [hour, min] = time.split(':');
const date = new Date();
date.setHours(hour);
date.setMinutes(min);
date.setMinutes(date.getMinutes() + minutes);
const newHour = date.getHours().toString().padStart(2, '0');
const newMinute = date.getMinutes().toString().padStart(2, '0');
return `${newHour}:${newMinute}`;
}
```
具体实现思路如下:
1. 定义起始时间、结束时间和间隔时间。
2. 获取当前时间,并将其转换为类似“8:30”的格式。
3. 通过循环,按照每个间隔时间生成一个时间段,并判断该时间段是否早于当前时间。
4. 将每个时间段和是否禁用的状态组成对象,添加到 `timeSlots` 数组中。
5. 最终输出 `timeSlots` 数组。
为了将时间段中的小时和分钟格式化为两位数,我们还定义了一个 `addMinutes` 函数,用于在给定时间上加上指定的分钟数。
阅读全文