mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at offline-indicator 51 lines 1.4 kB view raw
1const MINUTE = 60 2const HOUR = MINUTE * 60 3const DAY = HOUR * 24 4const MONTH = DAY * 28 5const YEAR = DAY * 365 6export function ago(date: number | string | Date): string { 7 let ts: number 8 if (typeof date === 'string') { 9 ts = Number(new Date(date)) 10 } else if (date instanceof Date) { 11 ts = Number(date) 12 } else { 13 ts = date 14 } 15 const diffSeconds = Math.floor((Date.now() - ts) / 1e3) 16 if (diffSeconds < MINUTE) { 17 return `${diffSeconds}s` 18 } else if (diffSeconds < HOUR) { 19 return `${Math.floor(diffSeconds / MINUTE)}m` 20 } else if (diffSeconds < DAY) { 21 return `${Math.floor(diffSeconds / HOUR)}h` 22 } else if (diffSeconds < MONTH) { 23 return `${Math.floor(diffSeconds / DAY)}d` 24 } else if (diffSeconds < YEAR) { 25 return `${Math.floor(diffSeconds / MONTH)}mo` 26 } else { 27 return new Date(ts).toLocaleDateString() 28 } 29} 30 31export function niceDate(date: number | string | Date) { 32 const d = new Date(date) 33 return `${d.toLocaleDateString('en-us', { 34 year: 'numeric', 35 month: 'short', 36 day: 'numeric', 37 })} at ${d.toLocaleTimeString(undefined, { 38 hour: 'numeric', 39 minute: '2-digit', 40 })}` 41} 42 43export function getAge(birthDate: Date): number { 44 var today = new Date() 45 var age = today.getFullYear() - birthDate.getFullYear() 46 var m = today.getMonth() - birthDate.getMonth() 47 if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 48 age-- 49 } 50 return age 51}