纯js实现倒计时功能

效果:

html代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>纯js倒计时</title>
    <style>
        .countdown_box{
            display: flex;
            justify-content: center;
        }
        .countdown_box_item{
            min-width: 60px;
            margin: 5px;
            padding: 2px;
            text-align: center;
            border: 1px solid #000;
        }
    </style>
  </head>
  <body>
    <div id="countdown" class="countdown_box">
        <div class="countdown_box_item"><div id="days"></div>
        days</div>
        <div class="countdown_box_item"><div id="hours"></div>
        hours</div>
        <div class="countdown_box_item"><div id="minutes"></div>
        minutes</div>
        <div class="countdown_box_item"><div id="seconds"></div>
        seconds</div>            
    </div>

    <script src="./demo.js"></script>
  </body>
</html>

js代码:

// 使用格式:'YYYY-MM-DDTHH:MM:SSZ'

// 定义倒计时器的开始和结束时间
const startTime = new Date('2024-11-15T01:00+0800').getTime(); // 开始时间
const endTime = new Date('2024-11-19T18:30+0800').getTime(); // 结束时间

// 更新倒计时器的函数
function updateCountdown() {
  // 获取当前时间
  const now = new Date().getTime();

  // 计算时间差
  let distance;
  if (now < startTime) {
    // 当前时间早于开始时间
    distance = startTime - now;
  } else if (now >= startTime && now < endTime) {
    // 当前时间在开始时间和结束时间之间
    distance = endTime - now;
  } else {
    // 当前时间晚于结束时间
    distance = 0;
    clearInterval(interval); // 清除定时器
  }

  // 时间转换
  const days = Math.floor(distance / (1000 * 60 * 60 * 24));
  const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // 将结果格式化为两位数字
  const formattedDays = String(days).padStart(2, '0');
  const formattedHours = String(hours).padStart(2, '0');
  const formattedMinutes = String(minutes).padStart(2, '0');
  const formattedSeconds = String(seconds).padStart(2, '0');

  // 更新HTML元素的内容
  document.getElementById('days').textContent = formattedDays;
  document.getElementById('hours').textContent = formattedHours;
  document.getElementById('minutes').textContent = formattedMinutes;
  document.getElementById('seconds').textContent = formattedSeconds;
}

// 使用setInterval每秒更新倒计时
let interval = setInterval(updateCountdown, 1000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小奋斗♛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值