Я когда-то делал что-то похожее для себя и тоже использовал библиотеку moment.js.
Вот страница с примером и код:
/** Запуск кода раз в секунду */
setInterval(() => {
let b = moment.utc('2020-07-18T07:50') // Дата отсчета
let a = moment.utc(new Date()) // Текущая дата
let years = a.diff(b, 'years') // Разница в годах
b.add(years, 'years') // Добавляем разницу в переменную b в которой дата отсчета
let months = a.diff(b, 'months') // Разница в месяцах
b.add(months, 'months')
let days = a.diff(b, 'days') // Разница в днях
b.add(days, 'days')
let hours = a.diff(b, 'hours') // Разница в часах
b.add(hours, 'hours')
let minutes = a.diff(b, 'minutes') // Разница в минутах
b.add(minutes, 'minutes')
let seconds = a.diff(b, 'seconds') // Разница в секундах
b.add(seconds, 'seconds')
let finalCalc = `${years}.${months}.${days} ${hours}:${minutes}:${seconds} назад` // Подготовка формата текста
let divTimer = document.getElementById('textTimer') // Занесение DIV'а, в котором будет отображаться таймер в переменную
divTimer.innerText = finalCalc // Вставка текста (таймера) в DIV
}, 1000)
Вот CodePen: