Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

404
Vistas
JS: verifique si el tiempo no excede el máximo permitido de una serie de intervalos

El objetivo es comprobar si la fecha seleccionada no supera el tiempo máximo.

Tengo una serie de intervalos de tiempo. El tiempo máximo es toMinutes - 20 minutes .

A continuación puede encontrar mi solución, que siempre devuelve false .

¿Cómo se puede editar para que coincida con el resultado esperado, que también se especifica a continuación?

 const dateRanges = [{fromMinutes: 360, toMinutes: 600}, {fromMinutes: 700, toMinutes: 900}]; // "06:00 - 10:00", "11:40" - "15:00" const minutesToHourFormat = (minutes) => { return new Date(minutes * 1000).toISOString().slice(14, 19); }; const isWithinMinDate = () => { const selectedDate = "14:30"; return dateRanges.every(({ toMinutes }) => { const minTime = minutesToHourFormat(toMinutes - 20); return selectedDate <= minTime; }) } // Expected Result // 14:30 -> true // 14:40 -> false // 14:10 -> true // 9:50 -> false // 9:30 -> true console.log(isWithinMinDate(), 'res')

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

every sus llamadas deben verificarse con ambos límites, porque el tiempo dado podría estar fuera de cualquier intervalo, o cuando está dentro de los 20 minutos para un intervalo final, ¡aún se consideraría al verificar un intervalo posterior!

Y preferiría convertir la cadena de tiempo seleccionada a minutos, en lugar de hacer lo contrario:

 const hourFormatToMinutes = (fmt) => fmt.split(":").reduce((h, m) => h * 60 + +m); const minutesToHourFormat = (minutes) => new Date(minutes * 1000).toISOString().slice(14, 19); const dateRanges = [ { fromMinutes: hourFormatToMinutes("6:00"), toMinutes: hourFormatToMinutes("10:00") }, { fromMinutes: hourFormatToMinutes("11:40"), toMinutes: hourFormatToMinutes("15:00") } ]; const isWithinMinDate = (hourFmt) => { const minutes = hourFormatToMinutes(hourFmt); return dateRanges.some(({ fromMinutes, toMinutes }) => minutes >= fromMinutes && minutes < toMinutes - 20 ); } for (const test of ["14:30", "14:40", "14:10", "9:50", "9:30"]) { console.log(test, isWithinMinDate(test)); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda