JSFiddle - React, Tailwind, and code Playground

by Bruno AM

HTML

<input onchange="HH=this.value" size="1" value="23" style="text-align:center" /> :
<input onchange="MI=this.value" size="1" value="59" style="text-align:center" /> :
<input onchange="SS=this.value" size="1" value="59" style="text-align:center" />
<span id="contador"></span>

JavaScript

var HH = 23;
var MI = 59;
var SS = 59;

function atualizaContador() {

  var hoje = new Date();
  var todayd = hoje.getDate();
  var todaym = hoje.getMonth();
  var todayy = hoje.getFullYear();
  var futuro = new Date(todayy, todaym + 1, todayd, HH, MI, SS);
  var ss = parseInt((futuro - hoje) / 1000);
  var mm = parseInt(ss / 60);
  var hh = parseInt(mm / 60);
  var dd = parseInt(hh / 24);
  ss = ss - (mm * 60);
  mm = mm - (hh * 60);
  hh = hh - (dd * 24);
  var faltam = '';

  faltam += (toString(hh).length) ? hh + ' hr, ' : '';
  faltam += (toString(mm).length) ? mm + ' min e ' : '';
  faltam += ss + ' seg';

  if (dd + hh + mm + ss > 0) {
    document.getElementById('contador').innerHTML = faltam;
    setTimeout(atualizaContador, 1000);
  } else {
    document.getElementById('contador').innerHTML = 'CHEGOU!!!!';
    setTimeout(atualizaContador, 1000);
  }
}
atualizaContador();