¿Hay alguna manera de reformatear una fecha usando .replace y una expresión regular? o una serie de ellos?
por ejemplo, me gustaría convertir May 4, 1981 en 1981-May-04 ... esto sería lo suficientemente bueno para mis necesidades.
pero aún mejor sería convertir May 4, 1981 en 1981-05-04 .
tenga en cuenta que los meses y las fechas de un solo dígito deben cambiarse a dos dígitos (es decir, el prefijo 0). El texto fuente May 4, 1981 nunca contendría un 0 inicial para el día.
el resultado final YYYY-MM-DD se puede ordenar, por lo que el 0 inicial es importante.
new Date('May 4, 1981').toLocaleDateString('en-CA') genera '1981-05-04'
Alternativas:
const date = new Date('May 4, 1981'); function getMyFormat(date) { return [ date.getFullYear(), date.getMonth().toString().padStart(2, '0'), date.getDay().toString().padStart(2, '0') ].join('-'); } console.log(getMyFormat(date)) new Date(date).toISOString().split('T')[0]Escupe una cadena larga donde, antes de la 'T', el formato es AAAA-MM-DD.
Sin embargo, hay algunas advertencias, ya que coloca la fecha en la zona horaria UTC, lo que podría afectar su configuración.
Sin embargo, hay una manera fácil de manejar esto:
new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000).toISOString().split('T')[0]Aquí, calculamos el desplazamiento de la zona horaria con respecto a UTC, por lo que debería ayudarlo a obtener el formato que necesita.