UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 1.24 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),w=e=>{const m=t.ref(Date.now());let u=null;const n=t.computed(()=>{if(e.time instanceof Date)return e.time;if(typeof e.time=="number")return new Date(e.time);if(typeof e.time=="string"){if(/^\d+$/.test(e.time))return new Date(parseInt(e.time));const r=new Date(e.time);return isNaN(r.getTime())?new Date(e.time.replace(/-/g,"/")):r}return new Date("")}),s=t.computed(()=>isNaN(n.value.getTime())?"无效的日期":n.value.toLocaleString()),d=(r,v)=>{const i=Math.floor((v-r.getTime())/1e3);if(i<10)return"刚刚";if(i<60)return`${i}秒前`;const f=Math.floor(i/60);if(f<60)return`${f}分钟前`;const l=Math.floor(f/60);if(l<24)return`${l}小时前`;const a=Math.floor(l/24);if(a===1)return"昨天";if(a<30)return`${a}天前`;const o=Math.floor(a/30);if(o===1)return"上个月";if(o<12)return`${o}个月前`;const c=Math.floor(o/12);return c===1?"去年":`${c}年前`},g=t.computed(()=>isNaN(n.value.getTime())?"无效的日期":d(n.value,m.value));return t.onMounted(()=>{e.autoUpdate&&(u=window.setInterval(()=>{m.value=Date.now()},60*1e3))}),t.onUnmounted(()=>{u&&clearInterval(u)}),{fullTime:s,relativeTime:g}};exports.useTimeAgo=w;