Quiero comprobar el tiempo transcurrido desde ahora. Por ejemplo 5 minutes ago así. Quiero hacerlo vivo sin ninguna actualización de página. ¿El paquete date-fns es adecuado para esto? y cómo hacerlo, ¿Puedo observar los cambios con un Watcher en Vue JS ? Gracias si alguien me puede ayudar con esta situación.
¿El método formatDistance en date-fns es adecuado para esto?
Asumiré que está utilizando la API de composición.
Puede usar el useTimeAgo de VueUse . Devuelve una cadena formateada en el formato que describiste, actualizándose con un intervalo específico.
Ejemplo:
import { useTimeAgo } from '@vueuse/core' const theEvent = new Date(2022, 0, 1) // The time can be a Date, string, or number, or a `ref` holding one of those. // Whatever you give, the value is passed through `Date`. const timeAgo = useTimeAgo(theEvent, { updateInterval: 30_000 }) // Update every half minute No puede especificar requestAnimationFrame como el intervalo, a diferencia del componente subyacente useNow , pero nunca debería ser necesario. La respuesta de Antfu cuando le pregunté :
useTimeAgosolo necesita una precisión muy baja de la hora, usarrequestAnimationFramesería demasiado costoso y aumentaría el tamaño del paquete.
Ver también: useNow en VueUse .