Hola chicos, necesito ayuda aquí, espero que me puedan dar la solución.
¿Cómo puedo transformar este formato de fecha en un formato que muestre los nombres de los días?
Sé que puedo usar algo como esto, pero no sé cómo agregarlo cuando estoy mapeando datos de un objeto o matriz.
let getDayName = (dateStr, locale) => { let date = new Date(dateStr); // console.log(date.toLocaleDateString(locale, { weekday: 'long' })); return date.toLocaleDateString(locale, { weekday: 'long' }); }; let dateStr = date;Puede agregar otra declaración de mapa y hacerlo allí así:
.filter(() => {}) .map((item) => { item.dt_txt = getDayName(item.dt_txt); return item; }) .map(() => {})Estás en el camino correcto. Lo único que falta es que debe llamar a su función getDayName() y proporcionar suficientes argumentos.
Aquí un ejemplo:
const array = ["2022-05-30 18:00:00", "2022-05-30 17:00:00", "2022-05-25 18:00:00"] const getDayName = (dateStr, locale) => { let date = new Date(dateStr); return date.toLocaleDateString(locale, { weekday: 'long' }); }; const output = array.map(dateStr => getDayName(dateStr, "en-GB")) console.log(output) .as-console-wrapper { max-height: 100% !important; top: 0; } En su caso, ya está mapeando usando map() , por lo tanto, solo necesitaría llamar a su función dentro de la devolución de llamada de map() :
<!-- other code... --> <div className="fd-day"> <h1>{getDayName(item.dt_txt, "en-GB")}</h1> </div> <!-- some more code... -->en vez de
<!-- other code... --> <div className="fd-day"> <h1>{item.dt_txt}</h1> </div> <!-- some more code... -->Por supuesto, puede ajustar la configuración regional según sus necesidades.