JSFiddle - React, Tailwind, and code Playground

by Sahin Deniz

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>

JavaScript

const countDownFrom = 9; // seconds
const countDownBy = 1; // seconds

const duration = moment.duration(countDownFrom, 's');

const intervalId = setInterval(() => {
  duration.subtract(countDownBy, "s");

  console.log(
    "As litteral string",
    `${duration.minutes()}:${duration.seconds()}`,
  );

  console.log(
    "Formatted string",
    moment.utc(duration.asMilliseconds()).format("mm:ss")
    // "mm:ss:SS" will include milliseconds
  );

  if (duration.minutes() === 0 && duration.seconds() === 0) {
    clearInterval(intervalId);

    console.warn("Times up!");
  }
}, countDownBy * 1000);