原生js实现倒计时效果

本文介绍了一个使用JavaScript编写的倒计时功能,基于给定的截止日期(2024年3月3日00:00:00),通过计算时间差并在页面上实时更新剩余时间。同时提到了日期字符串的正确格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <section>
    <p>请在以下时间前进行购买</p>
    <span class="daySpan"></span>
    <span class="hourSpan"></span>
    <span class="minuteSpan"></span>
    <span class="secondSpan"></span>
    <p>感谢您的惠顾</p>
  </section>
  <script>
    // 倒计时效果
    const daySpan = document.querySelector('.daySpan'),
      hourSpan = document.querySelector('.hourSpan'),
      minuteSpan = document.querySelector('.minuteSpan'),
      secondSpan = document.querySelector('.secondSpan'),
      // 最终的时间
      deadline = new Date("2024-03-03T00:00:00")
      // deadline = new Date("2024-3-3:00:00")
    function countdown () {
      // 获取当前的时间        获取希望达到的时间和现在的时间之间的差
      const now = new Date(), timeRemaining = deadline - now
      let day, hour, minute, second
      if (timeRemaining < 0) { return 0 }
      // // 全部除以1000转化为秒, 在电脑中时间是以毫秒数进行计算的,所以我们进行计算之后分别秒,分,时,天
      second = Math.floor(timeRemaining / 1000 % 60)  // %60 对秒进行取余 得到秒数
      minute = Math.floor(timeRemaining / 1000 / 60 % 60)
      hour = Math.floor(timeRemaining / 1000 / 60 / 60 % 24)
      day = Math.floor(timeRemaining / 1000 / 60 / 60 / 24)   // 得到天数
      day = padZero(day) // 添加前导零  
      hour = padZero(hour)
      minute = padZero(minute)
      second = padZero(second)
      console.log('day', day)
      daySpan.innerHTML = day + '天'
      hourSpan.innerHTML = hour + "时"
      minuteSpan.innerHTML = minute + "分"
      secondSpan.innerHTML = second + "秒"
      setTimeout(countdown, 1000)
    }
    function padZero (value) {
      return value < 10 ? '0' + value : value // 如果小于10,则添加前导零  
    }
    countdown()

  </script>

**需要注意的点: deadline = new Date(“2024-03-03T00:00:00”)
**
日期字符串通常应该遵循特定的格式,
如"YYYY-MM-DDTHH:mm:ss"
或"MM/DD/YYYY HH:mm:ss"等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值