Javascript 简单倒计时

Javascript 简单倒计时,javascript,countdown,Javascript,Countdown,我正试图做这种倒计时: 现在是09:20,我想知道还有多少分和秒到1小时。所以从40分钟到10点 该倒计时必须连续计算一天内的间隔 我尝试了以下方法,但无效: var now = new Date(); var mins = now.getMinutes(); var secs = now.getSeconds(); function initClock(id) { const counter = document.getElementById(id); const minutesI

我正试图做这种倒计时:

现在是09:20,我想知道还有多少分和秒到1小时。所以从40分钟到10点

该倒计时必须连续计算一天内的间隔

我尝试了以下方法,但无效:

var now = new Date();
var mins = now.getMinutes();
var secs = now.getSeconds();

function initClock(id) {
  const counter = document.getElementById(id);

  const minutesItem = counter.querySelector('.js-countdown-minutes');
  const secondsItem = counter.querySelector('.js-countdown-seconds');

  function updateClock() {
    mins = now.getMinutes();
    secs = now.getSeconds();

    minutesItem.innerHTML = (60 - mins);
    secondsItem.innerHTML = (secs);

  }

  updateClock();
  const timeinterval = setInterval(updateClock, 1000);
}

initClock('js-countdown');

秒数没有被更新。

请查看此倒计时,您可以使用此函数获取计数器结果

函数getCountDown(initDate){ //获取今天的日期和时间 var now=new Date().getTime(); //找出现在和倒计时日期之间的距离 var distance=initDate-now; //天、小时、分钟和秒的时间计算 变量天数=数学楼层(距离/(1000*60*60*24)); 可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60)); var分钟=数学楼层((距离%(1000*60*60))/(1000*60)); var秒=数学楼层((距离%(1000*60))/1000); //使用id=“demo”在元素中显示结果 返回天数+d+h+h +分钟+米+秒+秒 } //确定我们倒计时的日期 var countDownDate=新日期(“2018年1月5日15:37:25”).getTime(); var strCounDown=getCountDown(倒计时日期) document.getElementById(“demo”).innerHTML=strCounDown

您需要重新计算
现在=新日期()。
它不会在每次
updatelock()
迭代中都得到更新

代码已修复:

function initClock(id, endtime) {
  const counter = document.getElementById(id);

  const minutesItem = counter.querySelector('.js-countdown-minutes');
  const secondsItem = counter.querySelector('.js-countdown-seconds');

  function updateClock() {
    var now = new Date(),
        mins = now.getMinutes(),
        secs = now.getSeconds();

    minutesItem.innerHTML = (60 - mins);
    secondsItem.innerHTML = (secs);

  }

  updateClock();
  const timeinterval = setInterval(updateClock, 1000);
}

initClock('js-countdown', 3600);
顺便说一下,前三行:

var now = new Date();
var mins = now.getMinutes();
var secs = now.getSeconds();

是不必要的。

诚实地说,你想要实现的目标没有得到很好的描述。但如果您希望计数器不断更新,则必须在每次调用
updatelock
函数时立即更新
now
变量。所以,你需要把这个:

var now = new Date();
var mins = now.getMinutes();
var secs = now.getSeconds();
updatelock
函数中。因此,在代码的开头不需要这些行。除此之外,我不明白为什么您要为
initClock
函数设置
endtime
参数,因为您从未使用过它


顺便说一句,也许您想更改
secondsItem.innerHTML=(secs)
secondsItem.innerHTML=(60秒)如果你说的是倒计时。

请分享html。当说它不起作用时,最好说什么不起作用可能重复感谢!对不起,这个基本的错误。还是Javascript新手。没问题,如果这解决了您的问题,请检查这是正确的答案!很抱歉英语不是我的第一语言至于秒数,你是对的。谢谢