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

121
Vistas
Fecha de análisis de diferentes formatos?

Tengo una cadena, que puede venir en diferentes formatos:

01.01.2020
01/01/2020
01-01-2020

o
2020-01-01
2020.01.01
2020/01/01


Ahora si trato de hacer

 const date = new Date(myDateString);

En algunos casos, obtendré un error "Fecha no válida". ¿Cómo puedo cubrir todos los escenarios y transformar cualquier escenario en una fecha válida?

Parece que la nueva Fecha(), ¿solo toma el formato Ymy?, aunque los otros casos también son fechas "válidas".

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

0

Puede dividir la cadena en los delimitadores conocidos y luego ver si la primera parte tiene cuatro dígitos. Si es así, sabes que es año-mes-día. Si no, sabes que es mes-día-año. A continuación, puede construir la fecha en consecuencia:

 const dateStrings = [ "10.31.2020", "10/31/2020", "10-31-2020", "2020-10-31", "2020.10.31", "2020/10/31", ] function parseDateStr(str) { // split on dots, dashes, and slashes const parts = str.split(/[./-]/); // mm-dd-yyyy const [year, month, day] = parts[0].length > 2 ? parts : [parts[2], parts[0], parts[1]]; // alternate for dd-mm-yyyy // const [year, month, day] = parts[0].length > 2 ? parts : parts.reverse(); // construct and return the date. (month is 0 based) return new Date(year, month - 1, day); } const results = dateStrings.map(parseDateStr); console.log(results);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes momento para hacer eso. Pero necesita saber qué formato se utiliza.

https://stackoverflow.com/a/44134515/3573340

about 4 years ago · Juan Pablo Isaza Denunciar

0

El constructor Date() es preciso si sus parámetros son YYYY , MM , DD . Las fechas del 1 de enero de 2020 deberían ser así:

 new Date(2020, 0, 1) // Month is 0 index, so MM -1
  • Dada una matriz de cadenas .map() y split() cada una por delimitadores .-/ , lo que da como resultado sub-matrices de 3 cadenas de cada cadena:

     strArr.map(str => str.split(/[-./]/))
  • luego .flatMap() para capturar cualquier matriz que comience con 2 dígitos y .reverse() :

     .flatMap(sub => sub[0].length === 2 ? [sub.reverse()] : [sub])
  • Finalmente, .flatMap() cada subarreglo en el constructor Date() :

     .flatMap(sub => [new Date(+sub[0], +sub[1] - 1, +sub[2])]) 

 const jan1_2020 = [ `01.01.2020`, `01/01/2020`, `01-01-2020`, `2020-01-01`, `2020.01.01`, `2020/01/01` ]; const formatDate = strArr => strArr.map(str => str.split(/[-./]/)).flatMap(sub => sub[0].length === 2 ? [sub.reverse()] : [sub]).flatMap(sub => [new Date(+sub[0], +sub[1] - 1, +sub[2])]); let x = formatDate(jan1_2020); console.log(x);

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