Quiero mostrar la fecha de cada entrada (fecha, texto, pregunta, respuesta) en una base de datos json dentro de un elemento iluminado en un módulo js. El formato de fecha para (fecha) dentro de json db es válido ( ver esta publicación ). Ejemplo: "2021-12-24T21:06:06.773Z"
Código relevante:
import { formatWithOptions } from "date-fns/fp"; import compose from "crocks/helpers/compose"; ... const newDate = (x) => new Date(x); const formatDateWithOptions = formatWithOptions( { awareOfUnicodeTokens: true, }, "d MMMM, yyyy, h:mm a" ); const prettyDate = compose(formatDateWithOptions, newDate); // this is registering as an invalid date Cuando se llama a ${prettyDate(date)} dentro de un elemento iluminado, arroja
RangeError: Invalid time value. De acuerdo con los documentos date- fns, formatWithOptions() debería estar bien para llamar con "d MMMM, yyyy, h:mm a" . Esta publicación trata el mismo error, pero usa una función diferente ( formatDistanceToNow ). ¿Dónde estoy yendo mal con mis variables?
El siguiente código generará una fecha no válida si x no está definido.
const newDate = (x) => new Date(x); Además, no olvide que debe ejecutar la función de redacción para proporcionar una entrada a la función newDate .
El siguiente código debería funcionar:
const MY_DATE_STR = "2021-12-24T21:06:06.773Z"; const newDate = x => { if (x === undefined) { return new Date(); } return new Date(x); } const formatDateWithOptions = formatWithOptions( { awareOfUnicodeTokens: true, }, "d MMMM, yyyy, h:mm a" ); const prettyDate = compose(formatDateWithOptions, newDate)(MY_DATE_STR); console.log(prettyDate); // 24 December, 2021, 1:06 PM