let rafSeconds = 0;
const rafStart = Date.now();
const tick = () => {
const seconds = (Date.now() - rafStart) / 1000 | 0;
if (rafSeconds !== seconds) { // секунды изменились!
rafSeconds = seconds;
// TODO: отрисовать новые секунды
}
window.requestAnimationFrame(tick);
}
tick();
const startTime = new Date();
setInterval(function() {
const now = new Date();
const diff = now - startTime;
// тут немного математики и смело отрисовывай таймер привязанный к часам OS.
console.log(diff)
}, 300);