JSFiddle - React, Tailwind, and code Playground

by Ufuk Ozdemir

HTML

<div class="countdown"></div>

JavaScript

var timer2 = "0:10";
var interval = setInterval(function() {


  var timer = timer2.split(':');
  //by parsing integer, I avoid all extra string processing
  var minutes = parseInt(timer[0], 10);
  var seconds = parseInt(timer[1], 10);
  --seconds;
  minutes = (seconds < 0) ? --minutes : minutes;
  seconds = (seconds < 0) ? 59 : seconds;
  seconds = (seconds < 10) ? '0' + seconds : seconds;
  //minutes = (minutes < 10) ?  minutes : minutes;
  $('.countdown').html(minutes + ':' + seconds);
  if (minutes < 0) clearInterval(interval);
  //check if both minutes and seconds are 0
  if ((seconds <= 0) && (minutes <= 0)) clearInterval(interval);
  timer2 = minutes + ':' + seconds;
}, 1000);

function seconds(seconds) {
    seconds = Number(seconds);
    var m = Math.floor(seconds % 3600 / 60);
    var s = Math.floor(seconds % 60);

    var mDisplay = m > 0 ? m + (m == 1 ? " minute" : ":") : "00";
    var sDisplay = s > 0 ? s + (s == 1 ? " second" : ":") : "00";
    return mDisplay + sDisplay;
}