Les dejo mi solución al reto de los slot, a mi parecer el mas dificil,
function availability(timezone,start,end,dateTime,options = {}) {
const {intervalDuration,margin} = options
start = new Date(start)
end = new Date(end)
let duration = ( end - start )/60/1000
const availability = []
let startInterval = new Date(start.getTime())
while (duration > 0) {
const interval = {
startDate: new Date(startInterval),
endDate: new Date(startInterval.getTime() + intervalDuration * 60000),
status: 'on'
}
availability.push(interval)
startInterval = new Date(interval.endDate.getTime() + margin * 60000)
duration -= (intervalDuration + margin)
}
return availability
}
availability("America/Santiago","2018-12-30T09:30:00","2018-12-30T12:30:00","2023-03-10",{intervalDuration:15,margin:5})
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?