Tengo una cadena que regresa de mi Backend: startDate: "28 de septiembre de 2021" en el formato: mm-dd-yyyy. Necesito formatear esta cadena en Front para mostrar: aaaa-mm-dd, es decir, 2021, 28 de septiembre.
¿Cómo formateo una cadena y cambio el orden de las palabras contenidas en ella?
Podría usar un reemplazo de expresiones regulares aquí:
var input = "September 28, 2021"; var output = input.replace(/\b(\w+ \d{1,2}), (\d{4})\b/, "$2, $1"); console.log(input); console.log(output);Con respecto a la elección del patrón de expresiones regulares que utilicé, debería ser suficiente y seguro suponiendo que nada más en su texto sería una palabra seguida de un número de 1-2 dígitos, una coma y luego un número de 4 dígitos.
Aquí está el fácil que también validará su fecha
let date = new Date("September 28, 2021"); let month = date.toLocaleString("default", { month: "long" }); let fomattedDate = `${date.getFullYear()}, ${month} ${date.getDate()}`; console.log(fomattedDate);RegEx funciona, pero si desea poder leer y comprender el código:
const input = 'September 28, 2021'; const [month, day, year] = input.split(' '); const formattedDate = `${year}, ${month} ${day.replace(',', '')}`