77 Evitar reservas de citas de días anteriores en FULLCALENDAR en el SISTEMA (PHP y MySql) FullStack
Duración: 12 minDescripción
🎬 Lección 77: Evitar Reservas de Citas en Días Anteriores ⛔
El objetivo de esta lección es validar la fecha seleccionada por el usuario para garantizar que una cita solo pueda registrarse para el día actual o para una fecha futura, lo cual es fundamental para la lógica de un sistema de reservas.
1. El Problema Detectado
El sistema, aunque ya validaba horarios ocupados y días no hábiles, aún permitía al usuario seleccionar y registrar citas para fechas anteriores a la fecha actual (por ejemplo, reservar el 15 de octubre cuando hoy es 19). [00:30] - [00:47]
2. Implementación de la Lógica de Fechas (JavaScript)
La lógica de validación se inserta al inicio de la función dateClick de FullCalendar, antes de que se muestre el modal de reserva.
- Captura de la Fecha Actual: Se utiliza el objeto new Date() de JavaScript para obtener la fecha de hoy, descomponiéndola en sus componentes:
- new Date().getFullYear()
- new Date().getMonth() + 1 (Se le añade + 1 porque JavaScript cuenta los meses desde 0). [02:27]
- new Date().getDate()
- Formato de la Fecha: Los componentes se concatenan para crear una variable hoy en formato YYYY-MM-DD, lo que permite una comparación de cadenas sencilla con la fecha seleccionada por FullCalendar. [04:38]
3. Lógica de Comparación
Se utiliza una condición if para comparar la fecha actual (hoy) con la fecha que el usuario seleccionó (info.date):
- Condición Aceptada: La reserva es permitida solo si la fecha actual es menor o igual (<=) a la fecha seleccionada: [09:07]
- if (hoy <= fecha_seleccionada)
- Restricción: Si la fecha seleccionada es menor que la fecha actual, se muestra un mensaje de advertencia ("no se puede reservar a un día pasado") y se evita que el modal de reserva se abra. [07:30]
Con esta última validación, el sistema de reservas para clientes está terminado, asegurando que las reservas sean lógicas y consistentes (no hay reservas en días pasados, no hay duplicados de horario, y solo en días hábiles). [11:27]
⏭️ Próximo Paso del Curso
El siguiente video de la serie se centrará en la parte del administrador, donde se implementará el módulo para visualizar todas las reservas hechas por los clientes, permitiendo la gestión y generación de reportes. [11:36]
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️