time-left-ago
Version:
Provide time left and time ago
35 lines (29 loc) • 945 B
text/typescript
import moment from 'moment'
export default function timeAgoFormatted(t: string): string {
try {
const time = moment(t)
if (!time.isValid()) {
return ''
}
const now = moment()
const twoMinutesFromJoin = moment(time).add(2, 'minutes')
const oneHourFromJoin = moment(time).add(1, 'hour')
const oneDayFromJoin = moment(time).add(1, 'day')
if (now.isAfter(oneDayFromJoin)) {
const daysDiff = now.diff(time, 'days')
const unit = daysDiff >= 2 ? 'DAYS' : 'DAY'
return `${daysDiff} ${unit}`
} else if (now.isAfter(oneHourFromJoin)) {
const hoursDiff = now.diff(time, 'hours')
const unit = hoursDiff > 1 ? 'HOURS' : 'HOUR'
return `${hoursDiff} ${unit}`
} else if (now.isAfter(twoMinutesFromJoin)) {
const minutesDiff = now.diff(time, 'minutes')
return `${minutesDiff} MIN`
} else {
return '1 MIN'
}
} catch (error) {
return ''
}
}