JSFiddle - React, Tailwind, and code Playground

by brigand

HTML

<div id="remain"></div>

JavaScript

function untilNext5() {
  const now = Date.now();
  const next = new Date(now)
  let minutes = next.getMinutes();
  minutes += 1
  while (minutes % 5 !== 0) {
    minutes += 1;
  }
  next.setHours(next.getHours(), minutes, 0, 0);

  return Number(next) - now
}

function tick() {
  remain.textContent = untilNext5() / 1000;
  requestAnimationFrame(tick)
}
tick()