mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
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}