0

我是一个完整的 javascript 初学者,不幸的是,我对它的了解还不够,无法做出我想要的改变,这就是我在这里接触的原因!

所以基本上我使用的是其他人创建的计时器,但我不喜欢天数或小时数显示为 0 天 0 小时 13 分 10 秒,而它只剩下 13 分 10 秒。

如果只剩下 13 分 10 秒,我有没有办法让它只显示 13 分 10 秒,同时在计时器中有超过 1 天或 1 小时时保持小时和天数?

这是代码:

倒计时('2017 年 6 月 26 日晚上 8:00','计时器');//日期格式: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);
}

4

1 回答 1

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 小时(如果分钟前有小时和小时前有天),那么您可以编写额外的 if 条件。

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';
于 2018-12-19T13:55:08.637 回答