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);