【发布时间】:2021-10-22 01:25:48
【问题描述】:
我正在尝试获取可用插槽的时间。我的数据库中有startDateTime、endDateTime、duration 和bufferBetweenSlots 字段。通过一些计算,我计算出了可用插槽的数量。
字段的值是:
startDateTime: 8/20/2021 11:30 AM
endDateTime: 8/20/2021 9:30 PM
duration: 60
bufferBetweenSlots: 30
但我不确定如何获取可用时段的开始和结束时间。例如10:00 - 11:00
const getTimeDiffInMins = (endTime, startTime) =>
(+new Date(endTime) - +new Date(startTime)) / (60 * 1000);
const getMultipleTimeSlots = (data) => {
const diff = getTimeDiffInMins(data.end_date_time, data.start_date_time);
const totalSlots = diff / data.duration;
const totalBuffer = data.buffer_between_slots * totalSlots;
const availableSlots = (diff - totalBuffer) / 60;
return availableSlots;
};
有什么建议吗?
【问题讨论】:
-
您能否解释一下您遇到的具体问题是什么
-
没有错误。所以在计算之后我得到了 5 个可用的时间段。我想知道如何获得这 5 个插槽的时间。就像每个插槽的时间是多少,例如
10:00 - 11:00只是时间戳或日期可以工作,然后我可以用 momentjs 格式化它 -
你应该只需要插槽之间的缓冲区,所以缓冲区的数量是插槽数减1。你想解决
n * slotTime + (n - 1) * buffer time == totalTime这样totalTime <= diff。
标签: javascript date datetime calendar