Tengo un problema con la interfaz de usuario y quiero mostrar la distancia de la marca de tiempo 3 hours ago 4 hours ago etc. La marca de tiempo proviene del servidor con una propiedad llamada createdAt que tiene el siguiente valor.
createdAt: "2021-10-27T05:24:37.642Z"Para resolver este problema, estoy usando una biblioteca como date-fns v2.25.0 función incorporada formatDistance .
import { formatDistance} from 'date-fns'; const timestamp = createdAt ? new Date(createdAt) : ''; console.log(formatDistance(Date.now(), timestamp, {addSuffix: true}));Pero está devolviendo la distancia en las siguientes palabras.
in about 3 hours in about 4 hoursen vez de
3 hours ago 4 hours ago¿Que estoy haciendo mal? Si conoce alguna otra buena biblioteca, puede compartirla.
Puede usar cualquier otro paquete popular como moment , que creo que tiene una configuración más personalizada, pero si desea usar este paquete, en lugar de tener que cambiar la función formatDistance , sería más fácil cambiar la cadena de resultados como:
import { formatDistance } from "date-fns"; const createdAt = "2020-08-27T08:24:37.642Z"; const timestamp = createdAt ? new Date(createdAt) : ""; const distance = formatDistance(Date.now(), timestamp, {addSuffix: true }); console.log(distance.substring(distance.indexOf(distance.match(/\d+/g)))); // => 2 hours agoInvierte los argumentos:
console.log(formatDistance(timestamp, Date.now(), {addSuffix: true}));