- Notifications
You must be signed in to change notification settings - Fork4
A tiny timeago component for Vue 3 using date-fns v2.28.
License
0x0dr1y/vue-timeago3
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A time ago component for Vue.js 3 based onvue-timeago for Vue 2 by egoist.
vue-timeago3 is a tiny component for Vue.js 3, to show the time passed since a specific date. You simply pass a date and get somewhat like10 seconds ago
,3 weeks ago
,...
printed by the component
distance to now | result |
---|---|
0 - 5 secs | less than 5 seconds ago |
5 - 10 secs | less than 10 seconds ago |
10 - 20 secs | less than 20 seconds ago |
20 - 40 secs | half a minute ago |
40 - 60 secs | less than a minute ago |
Seedate-fns/formatDistanceToNow for more details.
Visit thedocs for more details!
Currently the plugin is available via NPM and Yarn. To install it use one of the two package managers.
// NPM$npminstallvue-timeago3// Yarn$yarnaddvue-timeago3
To register the plugin simply import and register it using the new global vue3 api. As an alternative the plugin could be imported in specific components only.
// src/main.tsimport{createApp}from'vue'importtimeagofrom'vue-timeago3'constapp=createApp(App)...app.use(timeago)// register timeago...app.mount('#app')
During the registration of the component you can specify a set of options, which will mutate the pluginglobally. If you don't want to define global settings, skip this section and use props instead. To use options, simply pass them during the registration as an object:
// src/main.tsimport{createApp}from'vue'importtimeagofrom'vue-timeago3'constapp=createApp(App)...// define optionsconsttimeagoOptions={converterOptions:{includeSeconds:false,}}app.use(timeago,timeagoOptions)// register timeago with options...app.mount('#app')
As of version 1.0.0 the following options are available:
option | type | description |
---|---|---|
name | string | Register the component with a custom name. Default is:timeago |
locale | Locale (seedate-fns/Locale) | Thelocale specifies the language which is used to render the date. All availabledate-fns locales are supported by default. |
converter | (date, defaultConvertOptions | strictConverterOptions) => string | Aconverter that formats regular dates inx Seconds ago , or inxxx style. Check out the default converter which usesdate-fns formatDistanceToNow |
defaultConverterOptions | Object | Pass some extra settings to the default converter mentioned above. It supports the main options ofdate-fns , namingly:includeSeconds -boolean - distances less than a minute are more detailedaddSuffix -boolean - results specifies if now is earlier or later than the date passeduseStrict -false -iftrue you need to use thestrictConverterOptions (see below) |
strictConverterOptions | Object | Pass some extra settings to the default converter mentioned above. It supports the main options ofdate-fns strict converter, namingly:useStrict -true - needs to betrue , otherwise thedefaultConverterOptions have to be used (see above)addSuffix -boolean - results specifies if now is earlier or later than the date passedunit -second, minute, hour, day, month, year if specified, will force a unitroundingMethod -floor, ceil, round which way to round partial units (default=round) |
Once the plugin is registered you can straight up use it in your app.
Basic usage:
<template><timeago :datetime="date"/></template><script>...data(){return{date:'2021-09-01'}}...</script
Instead of configurating the plugin during the registration, you can also configuate the component viaprops
.
property | type | required | default | description |
---|---|---|---|---|
datetime | string | Date | number | ✔️ | Thedatetime used to calculate the "time ago" | |
autoUpdate | number | boolean | ❌ | false | The period of time to update the component,in seconds. This can be omitted by setting it to 0 orfalse .The default value for true is60 (seconds). Instead of passingtrue you can also pass a custom time. |
locale | Locale (seedate-fns/Locale) | ❌ | en | Thelocale specifies the language which is used to render the date. All availabledate-fns locales are supported by default. |
converter | date, defaultConverterOptions | strictConverterOptions) => string | ❌ | See plugin options above | |
defaultConverterOptions | Object | ❌ | See plugin options above | |
strictConverterOptions | Object | ❌ | See plugin options above |
About
A tiny timeago component for Vue 3 using date-fns v2.28.