Javascript倒计时代码

时间:2015-11-20 14:45:20

标签: javascript jquery html

我为JavaScript倒计时运行此脚本时遇到问题(使用this plugin)。它应该做的是采取开始时间,当前时间和结束时间,并显示剩余时间。

如果我在纪元时间用正常数字设置这些值一切正常,但我的问题是:如何设置当前时间和开始是真正的当前时间,以便倒计时是动态的?

我找到了这一行:Math.round(new Date().getTime()/1000.0);

但我不知道如何让它工作,考虑到我在我的HTML文件底部运行此脚本,在</html>标记之前。

这是剧本:

<script>
$('.countdown').final_countdown({
    start: '[amount Of Time]',
    end: '[amount Of Time]',
    now: '[amount Of Time]'
});
</script>

这就是我试图解决它的方法,但它不起作用:

//get the current time in unix timestamp seconds
var seconds = Math.round(new Date().getTime()/1000.0);
var endTime = '1388461320';

$('.countdown').final_countdown({
    start: '1362139200',
    end: endTime,
    now: seconds
});

1 个答案:

答案 0 :(得分:0)

听起来您希望将来从当前时间倒计时到某个固定点。

以下示例倒计时并显示从现在开始的剩余时间(无论何时可能)到下一分钟内的某个随机时间戳。

function startTimer(futureTimeStamp, display) {
  var diff;

  (function timer() {
    // how many seconds are between now and when the count down should end
    diff = (futureTimeStamp - Date.now() / 1000) | 0;

    if (diff >= 0) {
      display(diff);
      setTimeout(timer, 1000);
    }
  }());
}

// wait for the page to load.
window.onload = function() {
  var element = document.querySelector('#time'),
      now = Date.now() / 1000,
      // some random time within the next minute
      futureTimeStamp = Math.floor(now + (Math.random() * 60));

  // format the display however you wish.
  function display(diff) {
    var minutes = (diff / 60) | 0,
        seconds = (diff % 60) | 0;
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;
    element.innerHTML = minutes + ":" + seconds;
  }
  
  startTimer(futureTimeStamp, display);
};
<span id="time"></span>

同样Math.round(new Date().getTime()/1000.0);会给你自纪元以来的秒数,但是对于数字来说可能有点不诚实。我认为你可以通过发言来更好地服务: var timestamp = Math.floor(Date.now() / 1000));可能是更好的选择。

此外,我不确定您为什么需要开始时间,当前时间和结束时间。为了找到剩余的秒数,您只需知道定时器何时结束以及当前时间。