Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Apply VueUse composables in Vue 3/Nuxt projects to replace custom implementations with battle-tested utilities.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/useTimeAgo.md
1---2category: Time3---45# useTimeAgo67Reactive time ago. Automatically update the time ago string when the time changes.89## Usage1011```ts12import { useTimeAgo } from '@vueuse/core'1314const timeAgo = useTimeAgo(new Date(2021, 0, 1))15```1617## Component Usage1819```vue20<template>21<UseTimeAgo v-slot="{ timeAgo }" :time="new Date(2021, 0, 1)">22Time Ago: {{ timeAgo }}23</UseTimeAgo>24</template>25```2627## Non-Reactivity Usage2829In case you don't need the reactivity, you can use the `formatTimeAgo` function to get the formatted string instead of a Ref.3031```ts32import { formatTimeAgo } from '@vueuse/core'3334const timeAgo = formatTimeAgo(new Date(2021, 0, 1)) // string35```3637## Type Declarations3839```ts40export type UseTimeAgoFormatter<T = number> = (41value: T,42isPast: boolean,43) => string44export type UseTimeAgoUnitNamesDefault =45| "second"46| "minute"47| "hour"48| "day"49| "week"50| "month"51| "year"52export interface UseTimeAgoMessagesBuiltIn {53justNow: string54past: string | UseTimeAgoFormatter<string>55future: string | UseTimeAgoFormatter<string>56invalid: string57}58export type UseTimeAgoMessages<59UnitNames extends string = UseTimeAgoUnitNamesDefault,60> = UseTimeAgoMessagesBuiltIn &61Record<UnitNames, string | UseTimeAgoFormatter<number>>62export interface FormatTimeAgoOptions<63UnitNames extends string = UseTimeAgoUnitNamesDefault,64> {65/**66* Maximum unit (of diff in milliseconds) to display the full date instead of relative67*68* @default undefined69*/70max?: UnitNames | number71/**72* Formatter for full date73*/74fullDateFormatter?: (date: Date) => string75/**76* Messages for formatting the string77*/78messages?: UseTimeAgoMessages<UnitNames>79/**80* Minimum display time unit (default is minute)81*82* @default false83*/84showSecond?: boolean85/**86* Rounding method to apply.87*88* @default 'round'89*/90rounding?: "round" | "ceil" | "floor" | number91/**92* Custom units93*/94units?: UseTimeAgoUnit<UnitNames>[]95}96export interface UseTimeAgoOptions<97Controls extends boolean,98UnitNames extends string = UseTimeAgoUnitNamesDefault,99>100extends FormatTimeAgoOptions<UnitNames>, ConfigurableScheduler {101/**102* Expose more controls103*104* @default false105*/106controls?: Controls107/**108* Intervals to update, set 0 to disable auto update109*110* @deprecated Please use `scheduler` option instead111* @default 30_000112*/113updateInterval?: number114}115export interface UseTimeAgoUnit<116Unit extends string = UseTimeAgoUnitNamesDefault,117> {118max: number119value: number120name: Unit121}122export type UseTimeAgoReturn<Controls extends boolean = false> =123Controls extends true124? {125timeAgo: ComputedRef<string>126} & Pausable127: ComputedRef<string>128/**129* Reactive time ago formatter.130*131* @see https://vueuse.org/useTimeAgo132*133* @__NO_SIDE_EFFECTS__134*/135export declare function useTimeAgo<136UnitNames extends string = UseTimeAgoUnitNamesDefault,137>(138time: MaybeRefOrGetter<Date | number | string>,139options?: UseTimeAgoOptions<false, UnitNames>,140): UseTimeAgoReturn<false>141export declare function useTimeAgo<142UnitNames extends string = UseTimeAgoUnitNamesDefault,143>(144time: MaybeRefOrGetter<Date | number | string>,145options: UseTimeAgoOptions<true, UnitNames>,146): UseTimeAgoReturn<true>147export declare function formatTimeAgo<148UnitNames extends string = UseTimeAgoUnitNamesDefault,149>(150from: Date,151options?: FormatTimeAgoOptions<UnitNames>,152now?: Date | number,153): string154```155