mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-03-25 01:51:37 -04:00
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import dayjs from 'dayjs'
|
|
import duration from 'dayjs/plugin/duration'
|
|
|
|
dayjs.extend(duration)
|
|
|
|
export function shortenedFromNow(time: number, t: any = undefined): string {
|
|
const diff = dayjs.duration(Math.abs(dayjs().diff(time)))
|
|
return shortenedDuration(diff, t)
|
|
}
|
|
|
|
export function simpleFromNow(time: number): string {
|
|
const diff = dayjs.duration(Math.abs(dayjs().diff(time)))
|
|
|
|
return durationFormat(diff)
|
|
}
|
|
|
|
export function shortenedDuration(diff: duration.Duration, t: any = undefined) {
|
|
const units: {[key: string]: number} = {
|
|
y: diff.years(),
|
|
mo: diff.months(),
|
|
d: diff.days(),
|
|
h: diff.hours(),
|
|
m: diff.minutes(),
|
|
s: diff.seconds(),
|
|
}
|
|
|
|
for (const unit in units) {
|
|
if (units[unit] > 0) {
|
|
return `${units[unit]}${t ? t(`time.units.${unit}`, unit) : unit}`
|
|
}
|
|
}
|
|
|
|
return '0s'
|
|
}
|
|
|
|
export function durationFormat(diff: duration.Duration) {
|
|
const units: {[key: string]: number} = {
|
|
years: diff.years(),
|
|
months: diff.months(),
|
|
days: diff.days(),
|
|
hours: diff.hours(),
|
|
minutes: diff.minutes(),
|
|
seconds: diff.seconds(),
|
|
}
|
|
|
|
for (const unit in units) {
|
|
if (units[unit] > 0) {
|
|
const unitLabel = units[unit] === 1 ? unit.slice(0, -1) : unit
|
|
return `${units[unit]} ${unitLabel}`
|
|
}
|
|
}
|
|
|
|
return '0s'
|
|
}
|