【发布时间】:2020-08-20 17:12:39
【问题描述】:
我正在制作一个调度应用程序。要求是用户输入两个时间范围,应用程序应将其划分为 20 个间隔,中间有 10 分钟的休息时间。例如,如果我输入 15:15-17:15,它应该给我如下插槽:['15:15', '15:35', '15:45', '16:55']。
我面临的错误:我使用的方法可以很好地设置间隔,但无法在其间设置 10 分钟的休息时间。我的输出给出 [“15:15”、“15:35”、“15:55”、“16:15”、“16:35”、“16:55”、“17:15”]。此外,如果我输入结束时间为 17:05,结果仍将最终计数为 17:15。
最后,如果上述两个问题得到解决,如果有人能告诉我如何格式化数组以使结果为:['15:15-15:35','15:45- 16:55']。 TIA
let date1 = new Date(2020, 8, 20, 15, 15);
let date2 = new Date(2020, 8, 20, 17, 05);
let slots = []
if(date1 < date2){
console.log((date2.getHours()*60 - date1.getHours()*60)/20)
for(var i = 0; date1 < date2; i=20)
{
date1.setMinutes(date1.getMinutes()+i)
slots.push(date1.getHours() + ':' + date1.getMinutes());
}
console.log(slots)
}
else{
console.log('End time should be greater than start time')
}
【问题讨论】:
-
您应该查看 MomentJs momentjs.com 库以帮助确定日期和时间。看看这篇文章是否解决了你的问题。 stackoverflow.com/questions/54123653/…
-
链接中提供的解决方案没有解决我的用例:(
标签: javascript date object