Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

97
Visualizações
¿Cómo puedo crear una función de javascript que devolverá los horarios de reserva en función de los tiempos condicionales?

Este es mi ejemplo de base de datos:

 [ { "schedule_time": "2021-05-17 12:39:29", "slot": "L", "item_date": "2021-05-18" }, { "schedule_time": "2021-05-17 12:47:53", "slot": "D", "item_date": "2021-05-18" }, { "schedule_time": "2021-05-18 13:55:22", "slot": "D", "item_date": "2021-05-19" }, { "schedule_time": "2021-05-19 16:09:15", "slot": "L", "item_date": "2021-05-20" }, { "schedule_time": "2021-05-19 16:11:55", "slot": "L", "item_date": "2021-05-20" },

Quiero crear una función que tomará item_date y verificará el horario_tiempo si hay alguna misma fecha disponible o no, luego devolverá horarios como este 9am to 12am -> 2 Scheduled; 12am to 3pm -> 1 Scheduled; 3pm to 6pm -> 0 Scheduled; 6pm to 9pm -> 2 Scheduled desde horario_hora Además, el problema es que el formato de hora de la base de datos es un reloj de 24 horas.

Por ejemplo, si hago clic en 2021-05-18, puedo ver:

9am a 12am -> 2 Horarios

12am a 3pm -> 1 Programado

15:00 a 18:00 -> 0 Horario

6pm a 9pm -> 2 Horarios

¿Alguien puede darme una idea de cómo puedo hacer esta funcionalidad similar?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para abordar un problema como este, es útil pensar para sí mismo, "sería más fácil si los datos se vieran como X". Modele esos datos. Por ejemplo, imagine si los datos se vieran así.

 const schedulesByDateAndShift = { "2021-05-17": { shift1: [ { "schedule_time": "2021-05-17 12:39:29", "slot": "L", "item_date": "2021-05-18" }, { "schedule_time": "2021-05-17 12:47:53", "slot": "D", "item_date": "2021-05-18" } ], shift2: [ /* ... */ ] }, "2021-05-18": { /* etc. */ } };

Entonces sería fácil conseguir lo que necesitas, ¿verdad? Ahora solo necesita descubrir cómo forzar sus datos actuales a este ideal. Puede hacer esto construyendo sus datos dentro de un bucle. No está claro en su publicación por qué la fecha es diferente entre schedule_time y item_date , pero supondré para este ejemplo que item_date no es relevante y solo debemos usar schedule_time .

 const shifts = [ ['09:00:00', '12:00:00'], ['12:00:00', '15:00:00'], ['15:00:00', '18:00:00'], ['18:00:00', '21:00:00'] ]; const schedulesByDateAndShift = {}; for (const schedule of schedules) { const [date, time] = schedule.schedule_time.split(' '); if (!(date in schedulesByDateAndShift)) { schedulesByDateAndShift[date] = {}; } const shiftIndex = shifts.findIndex( ([start, end]) => time >= start && time < end ); if (shiftIndex === -1) { // TODO: handle case where time doesn't fit within a given shift continue; } const shiftId = `shift${shiftIndex}`; if (!(shiftId in schedulesByDateAndShift[date])) { schedulesByDateAndShift[date][shiftId] = []; } schedulesByDateAndShift[date][shiftId].push(schedule); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda