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

129
Vistas
encuentre la fecha y hora futuras más cercanas a la de hoy en la respuesta json

Estoy recibiendo una respuesta de mi api donde se da start_time . Quiero extraer la identificación de json cuya próxima fecha es la más cercana a la fecha actual, que no incluye fechas pasadas.

Un ejemplo de mi respuesta json:

 [ { "expected": { "id": 1, "start_time": "2021-10-01T06:35:00.659Z" } }, { "expected": { "id": 2, "start_time": "2021-11-30T17:08:29.307Z" } }, { "expected": { "id": 3, "start_time": "2021-11-30T09:49:18.574Z" } }, { "expected": { "id": 4, "start_time": "2021-09-30T15:08:29.303Z" } }, ]

Aquí, lo que he hecho hasta ahora es encontrar la fecha y hora más cercana a la fecha y hora de hoy:

 const today = new Date().getTime(); const result = response.sort((a: any, b: any) => { const diffA = new Date(a.expected.shift_start_time).getTime() - today; const diffB = new Date(b.expected.shift_start_time).getTime() - today; return diffA - diffB; })[0];

al usar esto, obtengo la id de la fecha y hora más cercana a partir de hoy. Pero el result a veces también incluye una start_time de inicio de una fecha pasada si es la más cercana a la fecha de hoy.

Quiero obtener una id que no incluya start_time de fechas pasadas. No puedo obtener la lógica de cómo se puede hacer

Otro enfoque que hice:

 var today = moment(); for (let index = 0; index < response.length; index++) { const element = response[index].start_time; var dateDiff = today.diff(element, 'days') * -1; if (dateDiff >= 0) { console.log('>>d>>', dateDiff); } }

consola:

 >>d>> -0 >>d>> 1 >>d>> -0

Desde aquí, ¿cómo puedo devolver la respuesta requerida? por favor ayuda

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

0

Tal vez no ordene la lista en absoluto. Dado que solo necesita una fecha y hora que sea la más cercana a la fecha actual, ordenar la 'lista' completa no parece ser la forma óptima de obtener su respuesta. Puede usar el siguiente enfoque,

  • Guardar DateTimeStamp actual en una variable local
  • Inicie un ciclo a través de su lista
  • Realice una verificación de su elemento actual si la fecha es posterior a la marca de tiempo local que almacenó.
  • Para el primer elemento, almacene el elemento como su respuesta actual y para cualquier otro elemento compare la diferencia con la marca de tiempo guardada y modifique su respuesta en consecuencia.
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