达到0后,向倒数计时器添加“0”

时间:2016-08-24 01:20:26

标签: javascript jquery if-statement

基本上我想做的是让我的倒数计时器一旦达到“10”以下就加一个“0”。到目前为止,我已经尝试了一个if语句(在下面的代码中),它不起作用。这是我的完整代码:

CountDownTimer('01/1/2017 12:0 AM', 'countdown');
  CountDownTimer('01/1/2017 12:0 AM', 'newcountdown');

  function CountDownTimer(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 = 'EXPIRED!';
              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);

          // THIS IS THE "IF" STATEMENT THAT DID NOT WORK, EVERYTHING ELSE IS WORKING
          if (seconds < 10) {
            document.getElementById(id).innerHTML += '0' + seconds + '.';
          }

          document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;';
          document.getElementById(id).innerHTML += hours + '.&nbsp;&nbsp;&nbsp;';
          document.getElementById(id).innerHTML += minutes + '.&nbsp;&nbsp;&nbsp;';
          document.getElementById(id).innerHTML += seconds + '.';
      }

      timer = setInterval(showRemaining, 1000);
  }

3 个答案:

答案 0 :(得分:1)

这应该这样做:

      // THIS IS THE "IF" STATEMENT....
      if (seconds < 10) {
        seconds = "0"+ seconds;
      }

而不是构建输出用途:

      document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;'+
            hours + '.&nbsp;&nbsp;&nbsp;'+
            minutes + '.&nbsp;&nbsp;&nbsp;'+
            seconds + '.';

此外,您的到期时间应为<=0,而不是<0

答案 1 :(得分:0)

从我看到的,你的If语句正常工作。但是,在您的If语句之后

document.getElementById(id).innerHTML = days + '.&nbsp;&nbsp;&nbsp;';

这将覆盖您之前的声明,将innerHTML设置为days + '.&nbsp;&nbsp;&nbsp;'

尝试在If语句中设置秒数,以便最后一行使用更新的秒数。

答案 2 :(得分:0)

您的代码问题不在于if,它正在运行:

if (seconds < 10) {
    document.getElementById(id).innerHTML += '0' + seconds + '.';
}

但事实是,在此之后,你将覆盖之前的值:

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

一个简单的解决方案是将seconds转换为if中的字符串:

if (seconds < 10) {
    seconds = "0" + seconds;
}

这样,您可以在后续innerHTML中使用该字符串。