Tengo un valor de fecha y quiero formatearlo.
Este es el valor:
Thu Jul 07 2022 01:03:18 GMT+0200 (Mitteleuropäische Sommerzeit)Quiero hacer este formato:
console.log(new Date('YYYY-MM-DD h:i:s', dateVal));pero obtengo una fecha no válida.
¿Cómo puedo hacerlo bien?
Aunque el constructor del objeto Date acepta un puñado de parámetros para establecer una fecha real, no hay ningún parámetro para especificar de qué manera se debe presentar la fecha.
Asi que:
let dateVal="Thu Jul 07 2022 01:03:18 GMT+0200 (Mitteleuropäische Sommerzeit)"; console.log(new Date('YYYY-MM-DD h:i:s', dateVal));no tiene sentido ya que intenta construir una fecha a partir de dos cadenas.
Sin embargo, lo que puede hacer es llamar a la función incorporada de la Fecha .toLocaleString() incluida la configuración regional "sv" para obtener su Fecha formateada en formato AAAA-MM-DD h:m:s .
Por ejemplo:
let dateVal = "Thu Jul 7 2022 01:03:18 GMT+0200 (Mitteleuropäische Sommerzeit)"; console.log(new Date(dateVal).toLocaleString("sv"));El constructor de Date solo toma un argumento, no puede formatear una fecha usándolo. ¿Desea el formato exacto que ha mostrado en su pregunta o la capacidad de usar cualquier formato de fecha arbitrario? Para la primera opción, la forma más sencilla que veo hasta ahora es:
let dateVal = 'Thu Jul 17 2022 01:03:18 GMT+0200 (Mitteleuropäische Sommerzeit)'; let dateObj = new Date(dateVal); let dateISO = dateObj.toISOString() let dateFmt = dateISO.slice(0, 10) + ' ' + dateISO.slice(11, 19) console.log(dateFmt)