首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将以秒为单位将倒计时javascript更改为以分钟为单位的倒计时?

如何将以秒为单位将倒计时javascript更改为以分钟为单位的倒计时?
EN

Stack Overflow用户
提问于 2018-08-16 07:13:53
回答 2查看 0关注 0票数 0

你好,我想把倒计时转到20:00,例如,(20分钟),我怎么才能从我的代码开始呢?

代码语言:txt
复制
let timer;

const startTimer = (duration) => {

    const timerElt = document.getElementById('timer');
    let counter = duration;
    timerElt.textContent = counter;

    timer = setInterval(function() {
        counter--;
        timerElt.textContent = counter;

        if (counter === 0) {
            timerElt.textContent = '';
            clearInterval(timer);
            document.querySelector('.reservation').textContent = '';
        }
    }, 1000);
};
EN

回答 2

Stack Overflow用户

发布于 2018-08-16 15:51:06

​试试:

代码语言:txt
复制
const timer = (minutes, el) => {
  const pad = (n) => n.toString().padStart(2, '0');
  const format = (n) => `${pad(Math.floor(n / 60))}:${pad(n % 60)}`;
  const display = (n) => el.textContent = format(n);
  
  let seconds = minutes * 60;

  display(seconds);

  const interval = setInterval(() => {
    display(--seconds);

    if (seconds === 0) {
      clearInterval(interval);
    }
  }, 1000);
};

timer(1, document.getElementById('timer1'));
timer(5, document.getElementById('timer5'));
timer(20, document.getElementById('timer20'));
代码语言:txt
复制
One minute: <span id="timer1"></span>
<br>
Five minutes: <span id="timer5"></span>
<br>
Twenty minutes: <span id="timer20"></span>

与你的版本的主要区别实际上仅限于根据秒数计算分钟和秒,并将它们显示在00:00 format.

Because setInterval()已经知道有一点漂移,如果你想要完全准确,你必须建立一个校正机制,以检查系统日期。

票数 0
EN

Stack Overflow用户

发布于 2018-08-16 17:13:03

试试这个:

代码语言:txt
复制
let timer;

const startTimer = (duration) => {

    const timerElt = document.getElementById('timer');
    let counter = duration * 60;
    timerElt.textContent = "${Math.floor(counter / 60)}:${(counter % 60).toString().padStart(2, '0')}";

    timer = setInterval(function() {
        counter--;
        timerElt.textContent = counter;

        if (counter === 0) {
            timerElt.textContent = '';
            clearInterval(timer);
            document.querySelector('.reservation').textContent = '';
        }
    }, 1000);
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档