JS倒计时显示几小时的天数

时间:2017-12-26 21:51:22

标签: javascript countdown

我有这个倒计时脚本,现在倒数到2018年。它显示小时,分钟,秒。我希望它能在几小时内显示剩下的日子。例如,在倒计时结束前2天,它应显示48:00:00。我不能真正挖掘数学部分,你能帮助我吗?

var countDownDate = new Date("Jan 01, 2018 00:00:00").getTime();
var x = setInterval(function() {
  var now = new Date().getTime();
  var distance = countDownDate - now;
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  document.getElementById("demo").innerHTML = ('0' + hours).slice(-2) + " : " +
    ('0' + minutes).slice(-2) + " : " + ('0' + seconds).slice(-2);
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "BÚÉK 2018";
  }
}, 1000);
<div id="demo"></div>

1 个答案:

答案 0 :(得分:1)

您需要做的就是将24 * days添加到hours金额。

进一步小变化不再将小时数显示为2位数字,这就是结果:

&#13;
&#13;
var countDownDate = new Date("Jan 01, 2018 00:00:00").getTime();
var x = setInterval(function() {
  var now = new Date().getTime();
  var distance = countDownDate - now;
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = 24 * days + Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  document.getElementById("demo").innerHTML = hours + " : " +
    ('0' + minutes).slice(-2) + " : " + ('0' + seconds).slice(-2);
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "BÚÉK 2018";
  }
}, 1000);
&#13;
<div id="demo"></div>
&#13;
&#13;
&#13;