使用ES6语法,起始时间fetchStartTime到结束时间fetchEndTime每间隔fetchInterval分钟为一个时间段, 时间段的格式例如:8:00~10:00,输出全部时间段,且筛选早于今日的时间段添加属性disabled为true
时间: 2024-05-07 20:20:27 浏览: 95
选择开始时间和结束时间
可以使用以下代码来实现:
```javascript
// 获取当前日期
const today = new Date();
// 计算今天的年月日
const year = today.getFullYear();
const month = today.getMonth() + 1;
const date = today.getDate();
// 将年月日格式化为字符串
const todayStr = `${year}-${month < 10 ? '0' + month : month}-${date < 10 ? '0' + date : date}`;
// 定义开始时间、结束时间和时间间隔
const fetchStartTime = '8:00';
const fetchEndTime = '18:00';
const fetchInterval = 30;
// 将开始时间、结束时间和时间间隔转换为分钟数
const startMinutes = getTimeInMinutes(fetchStartTime);
const endMinutes = getTimeInMinutes(fetchEndTime);
const intervalMinutes = fetchInterval;
// 定义一个数组用来存储时间段
const timeSlots = [];
// 循环生成时间段
for (let i = startMinutes; i < endMinutes; i += intervalMinutes) {
// 计算时间段的起始时间和结束时间
const start = getTimeString(i);
const end = getTimeString(i + intervalMinutes);
// 将时间段添加到数组中
timeSlots.push({
label: `${start}~${end}`,
disabled: start < todayStr
});
}
// 输出全部时间段
console.log(timeSlots);
// 将时间字符串转换为分钟数
function getTimeInMinutes(timeStr) {
const [hour, minute] = timeStr.split(':').map(Number);
return hour * 60 + minute;
}
// 将分钟数转换为时间字符串
function getTimeString(minutes) {
const hour = Math.floor(minutes / 60);
const minute = minutes % 60;
return `${hour < 10 ? '0' + hour : hour}:${minute < 10 ? '0' + minute : minute}`;
}
```
这段代码会输出一个数组,数组中的每个元素都是一个对象,包含 `label` 和 `disabled` 两个属性。`label` 属性表示时间段的字符串表示,`disabled` 属性表示该时间段是否早于今日。
阅读全文