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

196
Vistas
Ordenar cadena de datos y tiempo en Javascript

Sé que hay muchas respuestas para ordenar la date y la time . Pero en cada respuesta, ordenan solo la date o solo la time . No puedo encontrar la respuesta que ordena la cadena de fecha y hora.

Aquí está el código que probé:

 var x = [ '29/09/2020 11:55:56', '04/08/2021 11:57:06', '30/09/2019 15:19:49', '04/08/2021 13:57:06' ] x.sort((a, b) => new Date(b).getTime() - new Date(a).getTime()).reverse(); console.log(x)

Salida que obtuve:

 ["04/08/2021 13:57:06", "30/09/2019 15:19:49", "04/08/2021 11:57:06", "29/09/2020 11:55:56"]

Salida requerida:

 ["04/08/2021 13:57:06","04/08/2021 11:57:06", "29/09/2020 11:55:56", "30/09/2019 15:19:49", ]

Busqué todo el día. Por favor, ayúdenme con algunas soluciones para solucionar esto.

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

0

El problema es que Date usa un formato aaaa/mm/dd en lugar de un formato dd/mm/aaaa. Entonces, todos sus objetos de Date son Invalid Date .

PD: si ordenas pero luego tienes que invertir el orden, simplemente invierte las restas.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La fecha y la hora no están separadas en el contexto de un objeto Date de javascript, internamente solo se almacenan como compensaciones de milisegundos. Pero, no puede confiar en las cadenas de análisis de Date para usted. Escriba un analizador personalizado para sus cadenas de fecha y hora específicas y luego simplemente reste las fechas.

Tampoco hay necesidad de reverse() , simplemente cambie la resta para cambiar de dirección.

 const x = [ '29/09/2020 11:55:56', '04/08/2021 11:57:06', '30/09/2019 15:19:49', '04/08/2021 13:57:06' ]; const parse_date_string = (str) => { const [date, time]= str.split(' '); const [day, month, year] = date.split('/'); const [hr, min, sec] = time.split(':'); return [year, (month - 1), day, hr, min, sec].map(Number); } x.sort((a, b) => new Date(...parse_date_string(b)) - new Date(...parse_date_string(a))); console.log(x)

about 4 years ago · Juan Pablo Isaza Denunciar

0

si momentjs una opción:

 var x = [ '29/09/2020 11:55:56', '04/08/2021 11:57:06', '30/09/2019 15:19:49', '04/08/2021 13:57:06' ]; x.sort((a, b) => moment(b,"DD-MM-YYYY hh:mm:ss") - (moment(a,"DD-MM-YYYY hh:mm:ss"))); console.log(x)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

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