Мало работал с Moment.js, но, вероятно, ошибка в том, что
serverAndUserTimeDifference
— разница в миллисекундах между датами, а при пробросе её в
moment()
она считается как дата в UNIX-формате.
Вот примерный код, который работает:
const now = moment();
const serverTime = moment('2024-10-09 10:20:34.987');
const duration = moment.duration(Math.abs(now.diff(serverTime)));
const result = `${duration.days()} ${duration.hours().toString().padStart(2, '0')}:${duration.minutes().toString().padStart(2, '0')}:${duration.seconds().toString().padStart(2, '0')}`;