dar*_*sad 2 javascript momentjs angular moment-timezone
var x = {
next-slot: 30,
start-time: '21:00',
end-time: '05:00'
}
Run Code Online (Sandbox Code Playgroud)
我想生成时间段,从开始时间到结束时间。输出应该是
[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]
Run Code Online (Sandbox Code Playgroud)
我正在做以下逻辑它适用于(低于日期范围)开始时间:'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')
);
}
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的。要获得时间,您将使用格式作为HH:mm数据中的开始时间。
在end time你在next的日子,所以我们需要使用moment.js 的add() ,我们将使用添加功能1一天结束时间。
而接下来我们会从我们的设置间隔时间loping超过data其设定为30在moment.js分钟
运行下面的代码片段以查看它的工作情况。
//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);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |