使用 moment.js 生成进入第二天的 30 分钟时间段
Generating 30 minutes time slots going into next day using moment.js
var x = {
next-slot: 30,
start-time: '21:00',
end-time: '05:00'
}
我想生成时隙,从开始时间到结束时间。输出应该是
[21:00, 21:30, 22:00, 22:30, 23:00, 23:30, 00:00, 00:30, 01:00, 01:30, 02:00, 02:30, 03:00, 03:30, 04:00, 04:30]
我正在做以下逻辑工作(低于日期范围)
开始时间:'05:00',
结束时间:'21:00'
不适用于:(低于日期范围)
开始时间:'21:00',
结束时间:'05:00'
const hours = [];
for (
let hour = Number(start-time[0]);
hour <= Number(end-time[0]);
hour++
) {
hours.push(moment({ hour }).format('kk:mm'));
hours.push(
moment({
hour,
minute: 30,
}).format('kk:mm')
);
}
这就是您所需要的。要获得时间,您将使用 HH:mm
格式作为数据中的开始时间。
你的 end time
是在 next
天,所以我们需要使用 moment.js
add() 函数,我们将使用它来添加 1
天结束时间。
接下来,在遍历时间的同时,我们将设置 data
的间隔,该间隔设置为 moment.js
分钟 30
运行 下面的代码片段以查看它是否正常工作。
//Data
let x = {
slotInterval: 30,
openTime: '21:00',
closeTime: '05:00'
};
//Format the time
let startTime = moment(x.openTime, "HH:mm");
//Format the end time and the next day to it
let endTime = moment(x.closeTime, "HH:mm").add(1, 'days');
//Times
let allTimes = [];
//Loop over the times - only pushes time with 30 minutes interval
while (startTime < endTime) {
//Push times
allTimes.push(startTime.format("HH:mm"));
//Add interval of 30 minutes
startTime.add(x.slotInterval, 'minutes');
}
console.log(allTimes);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
var x = {
next-slot: 30,
start-time: '21:00',
end-time: '05:00'
}
我想生成时隙,从开始时间到结束时间。输出应该是
[21:00, 21:30, 22:00, 22:30, 23:00, 23:30, 00:00, 00:30, 01:00, 01:30, 02:00, 02:30, 03:00, 03:30, 04:00, 04:30]
我正在做以下逻辑工作(低于日期范围) 开始时间:'05:00', 结束时间:'21:00' 不适用于:(低于日期范围) 开始时间:'21:00', 结束时间:'05:00'
const hours = [];
for (
let hour = Number(start-time[0]);
hour <= Number(end-time[0]);
hour++
) {
hours.push(moment({ hour }).format('kk:mm'));
hours.push(
moment({
hour,
minute: 30,
}).format('kk:mm')
);
}
这就是您所需要的。要获得时间,您将使用 HH:mm
格式作为数据中的开始时间。
你的 end time
是在 next
天,所以我们需要使用 moment.js
add() 函数,我们将使用它来添加 1
天结束时间。
接下来,在遍历时间的同时,我们将设置 data
的间隔,该间隔设置为 moment.js
分钟 30
运行 下面的代码片段以查看它是否正常工作。
//Data
let x = {
slotInterval: 30,
openTime: '21:00',
closeTime: '05:00'
};
//Format the time
let startTime = moment(x.openTime, "HH:mm");
//Format the end time and the next day to it
let endTime = moment(x.closeTime, "HH:mm").add(1, 'days');
//Times
let allTimes = [];
//Loop over the times - only pushes time with 30 minutes interval
while (startTime < endTime) {
//Push times
allTimes.push(startTime.format("HH:mm"));
//Add interval of 30 minutes
startTime.add(x.slotInterval, 'minutes');
}
console.log(allTimes);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>