вот мой код
то, что я пытаюсь достичь, это время, подобное youtube / fb / instagram, показать разницу во времени публикации
например: 30 секунд назад 5 минут назад 15 часов назад 6 дней назад 1н назад 5y a go
код работает нормально, но является подробным, и мне интересно, может ли какой-нибудь js "гуру" улучшить это, используя последние функции ecmascript
const timeAgo = () => {
const date1 = dayjs(Date.now())
const now = base.createdOn
const diffInSeconds = date1.diff(now, 'second', false)
let diff = date1.diff(now, 'second', false) + 's'
if (diffInSeconds > 60 * 60 * 24 * 7 * 30 * 12) {
return date1.diff(now, 'year', false) + 'y'
}
if (diffInSeconds > 60 * 60 * 24 * 7 * 30) {
return date1.diff(now, 'month', false) + 'm'
}
if (diffInSeconds > 60 * 60 * 24 * 7) {
return date1.diff(now, 'week', false) + 'w'
}
if (diffInSeconds > 60 * 60 * 24) {
return date1.diff(now, 'day', false) + 'd'
}
if (diffInSeconds > 60 * 60) {
return date1.diff(now, 'hour', false) + 'h'
}
if (diffInSeconds > 60) {
return date1.diff(now, 'minute', false) + 'm'
}
return diff
}