Tengo un objeto de fecha que es cuando hice stringify
const date = "2022-03-13T18:30:00.00Z"Ahora estoy tratando de convertir esto en un formato usando date-fns
format(date, "dd MMM yyyy") esto devuelve la string y no el objeto de fecha que será a partir de la cadena de fecha.
probé con
format(parseISO(date), "dd MMM YYYY")Todavía no funciona.
Puede alguien ayudarme con esto ?
format es una función que siempre devuelve una cadena. No puede hacer que devuelva un objeto de Date porque los objetos de Date no son solo una forma de formatear una cadena. Puede leer sobre el format en la documentación de date-fns .
Si desea usar una cadena para obtener un objeto de date , simplemente puede usar el constructor para la clase Date . Aquí hay algunas formas aceptables de instanciar un objeto Date :
new Date( ) new Date(milliseconds) new Date(datestring) new Date(year,month,date[,hour,minute,second,millisecond ]) Para su caso, usaremos una new Date(dateString) ya que ya la tiene. Así que simplemente puedes hacer esto:
const date = "2022-03-13T18:30:00.00Z"; const dateObject = new Date(date); Y luego tendrá un objeto Date con todos los métodos convenientes que lo acompañan.
Por supuesto, no necesita usar const , simplemente estoy siguiendo lo que tiene.
Recomendaría leer sobre objetos Date . la página de Tutorialspoint es un buen lugar para comenzar.
La cadena de fecha que muestra ( "2022-03-13T18:30:00.00Z" ) simplemente se puede convertir en un objeto Date . Ahora, para formatear eso de nuevo a una cadena de fecha que desee, intente usar Intl.DateTimeFormat .
const date = new Date("2022-03-13T18:30:00.00Z"); const formatOptions = { year: 'numeric', month: 'long', day: '2-digit' }; const [MMM, dd, yyyy] = new Intl.DateTimeFormat(`en-EN`, formatOptions) .formatToParts(date) .filter( v => v.type !== `literal`) .map( v => v.value ); console.log(`${dd} ${MMM} ${yyyy}`);Puede usar el paquete moment.js en función.
Para ref. https://momentjs.com/guides/
De acuerdo con su código, esto es lo que se puede hacer
import moment from 'moment'; const date = "2022-03-13T18:30:00.00Z" const updatedDate = moment(date).format("DD/MM/YYYY") console.log(updatedDate) // 13/03/2022Con el uso del paquete momentjs, puede convertir la fecha en cualquier formato requerido.
Consulte este enlace para obtener más información como el formato: https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/