Tengo un objeto en el que recibo un rango de horas, ese rango de horas en el frontend hay que filtrarlo en base a un lugar y en base a días.
Este es el objeto:
Schedules: { 0: days: { 0: "MO" 1: "TU" 2: "WE" 3: "TH" 4: "FR" length: 5} finalTimeStr: "05:00 pm" initialTimeStr: "01:00 pm" _id: "600b073094a6a36dc548dd79"}Funciona así: El usuario elige un lugar donde quiere hacer su cita, luego dependiendo del lugar se filtrará un rango de horario de 13:00 a 17:00 y si cambia de lugar será filtrado en el horario de ese lugar.
Otra cosa a tener en cuenta es que, por ejemplo, si el calendario de fechas tiene que atender de lunes a viernes, el lunes el horario empezaría de 6:00 a 13:00, pero el viernes empezaría de 9. :00 am a 5:00 pm.
¿Cómo puedo hacerlo?
Tengo este método para filtrar el calendario:
dateFilter = (date: Date) => { // if (this.place.floor == null) { // // return false; // } let currentDay = new Date; currentDay.setDate(currentDay.getDate() - 1) if (date < currentDay) { return false; } if (this.selectedPlace.schedules.some((schedule: any) => schedule.days.some((day: String) => { return day === DaysOfWeek[date.getDay()]; // DaysOfWeek[( as number)] === DaysOfWeek[date.getDay()] } ))) { return true; } return false; } onClickNext() { this.dataEntrante = this.place; // console.log('entrante', this.dataEntrante); this.serviceatClinic.disparadorHandClick.emit({data: this.dataEntrante}) this.router.navigate(['../appointmentAtClinicHour'], { relativeTo: this._activedRoute }); } } enum DaysOfWeek { "MO" = 1, "TU" = 2, "WE" = 3, "TH" = 4, "FR" = 5, "SA" = 6, "SU" = 7, }