当达到0时从计时器中删除日期和时间?

时间:2018-12-19 13:48:42

标签: javascript

我是javascript的完全入门者,不幸的是,我对javascript的了解还不足以进行所需的更改,这就是为什么我要在这里进行推广!

所以基本上我使用的是别人创建的计时器,但是我不喜欢将天或小时显示为0天0小时13分10秒,而仅剩13分10秒。

有没有办法让我只显示13分钟10秒(如果还剩下13分钟10秒),同时还能将小时和天数保持在1天或1小时以上呢?计时器?

这是代码:

  

      倒计时('06 / 26/2017 8:00 PM','计时器'); //日期格式:mm / dd / yyyy hh:mm AM

function countdown(dt, id)
{
  var end = new Date(dt);
  var _second = 1000;
  var _minute = _second * 60;
  var _hour = _minute * 60;
  var _day = _hour * 24;
  var timer;

  function showRemaining() {
    var now = new Date();
    var distance = end - now;
    if (distance < 0) {
      clearInterval(timer);
      document.getElementById(id).innerHTML = 'THE DAY HAS ARRIVED!'; //Displays when countdown is complete
      return;
    }
    var days = Math.floor(distance / _day);
    var hours = Math.floor((distance % _day) / _hour);
    var minutes = Math.floor((distance % _hour) / _minute);
    var seconds = Math.floor((distance % _minute) / _second);

    document.getElementById(id).innerHTML = days + ' days ';
    document.getElementById(id).innerHTML += hours + ' hrs ';
    document.getElementById(id).innerHTML += minutes + ' mins ';
    document.getElementById(id).innerHTML += seconds + ' secs';
  }
  timer = setInterval(showRemaining, 1000);
}

1 个答案:

答案 0 :(得分:2)

使用if条件检查天,小时或分钟是否大于0。如果大于等于0,则将其添加到innerHTML中。

document.getElementById(id).innerHTML = ""; // initialize it to empty string
if(days > 0) {
  document.getElementById(id).innerHTML += days + ' days ';
}
if(hours > 0) {
  document.getElementById(id).innerHTML += hours + ' hrs ';
}
if(minutes > 0) {
  document.getElementById(id).innerHTML += minutes + ' mins ';
}

document.getElementById(id).innerHTML += seconds + ' secs';

如果它们是0,则不会显示分钟或小时,但是如果要在分钟前和小时前还有小时,则要显示0分钟或0小时,则可以写一些额外的条件。

document.getElementById(id).innerHTML = ""; // initialize it to empty string
if(days > 0) {
  document.getElementById(id).innerHTML += days + ' days ';
  if(hours == 0) {
    document.getElementById(id).innerHTML +=  '0 hours ';
    if(minutes == 0) {
      document.getElementById(id).innerHTML +=  '0 mins ';
    }
  }
}
if(hours > 0) {
  document.getElementById(id).innerHTML += hours + ' hrs ';
  if(minutes == 0) {
    document.getElementById(id).innerHTML +=  '0 mins ';
  }
}
if(minutes > 0) {
  document.getElementById(id).innerHTML += minutes + ' mins ';
}

document.getElementById(id).innerHTML += seconds + ' secs';