两个24制的时间, 时间格式为12:00, 分钟只能是 ['00', '15', '30', '45'] 其中之一, 没有判断开始时间早于结束时间
代码写的有点挫,伸手党凑合用吧.
/**
* 获取两个时间段的所有选项,步长为15分钟
* @param {*} startTime 开始时间 时间格式为 12:00
* @param {*} endTime 结束时间 时间格式为 12:00
* 返回 可选的数组
*/
function getOptions(startTime, endTime) {
const timeMap = { '00': 0, '15': 1, '30': 2, '45': 3 }
const numTotimeMap = ['00', '15', '30', '45']
let [startHours, startMin] = startTime.split(':')
let [endHours, endMin] = endTime.split(':')
let len = endHours - startHours
let res = []
for (let i = 0; i < len + 1; i++) {
let num = (i === 0 ? timeMap[startMin] : 0)
let inlen = (i === len) ? timeMap[endMin] + 1 : 4
for (let q = num; q < inlen; q++) {
let hours = parseInt(startHours) + parseInt(i)
let item = `${hours}:${numTotimeMap[q]}`
res.push(item)
}
}
return res
}
var startTime = '11:30'
var endTime = '15:00'
let res = getOptions(startTime, endTime)
console.log(res)
// [
// '11:30', '11:45', '12:00',
// '12:15', '12:30', '12:45',
// '13:00', '13:15', '13:30',
// '13:45', '14:00', '14:15',
// '14:30', '14:45', '15:00'
// ]