js实现页面多个日期时间倒计时效果

JS实现页面多个日期时间倒计时效果的攻略如下:

1. 获取倒计时目标时间

首先,我们需要通过JS获取到倒计时的目标时间。目标时间可以通过后端接口获取,也可以通过前端手动指定。我们可以使用Date对象,把目标时间转化为时间戳,之后再与当前时间的时间戳作差,得到剩余时间。

// 获取目标时间
let targetTime = new Date('2022-01-01 00:00:00').getTime();

// 获取当前时间
let currentTime = new Date().getTime();

// 剩余时间
let remainingTime = targetTime - currentTime;

2. 倒计时的格式化

计算出倒计时的剩余时间后,我们需要将剩余时间格式化成我们需要的样式。常见的倒计时样式有天-时-分-秒时-分-秒,以天数为单位的倒计时还需要把剩余时间转化为“天-时-分-秒”的格式。

// 将剩余时间格式化为天-时-分-秒的格式
function formatTime(time) {
  let day = Math.floor(time / (1000 * 60 * 60 * 24));
  let hour = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  let minute = Math.floor((time % (1000 * 60 * 60)) / (1000 * 60));
  let second = Math.floor((time % (1000 * 60)) / 1000);
  return `${day}天${hour}时${minute}分${second}秒`;
}

3. 定时器实现倒计时

有了倒计时的目标时间和格式化后的剩余时间,我们就可以通过定时器实时更新倒计时了。通过setInterval()函数,我们可以设置倒计时每隔一段时间更新一次。

// 倒计时显示到页面上
let timer = setInterval(function() {
  let currentTime = new Date().getTime();
  let remainingTime = targetTime - currentTime;
  document.getElementById("countdown").innerText = formatTime(remainingTime);
  if (remainingTime < 0) {
    clearInterval(timer);
  }
}, 1000);

示例

下面是一个使用上述攻略实现简单倒计时的示例,页面上同时倒计时两个目标时间,一个是2022年元旦,一个是2022年春节:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>倒计时</title>
  </head>
  <body>
    <p>距离2022年元旦还有<span id="countdown1"></span></p>
    <p>距离2022年春节还有<span id="countdown2"></span></p>
    <script>
      // 定义格式化时间函数
      function formatTime(time) {
        let day = Math.floor(time / (1000 * 60 * 60 * 24));
        let hour = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        let minute = Math.floor((time % (1000 * 60 * 60)) / (1000 * 60));
        let second = Math.floor((time % (1000 * 60)) / 1000);
        return `${day}天${hour}时${minute}分${second}秒`;
      }

      // 定义元旦的倒计时目标时间
      let targetTime1 = new Date('2022-01-01 00:00:00').getTime();
      // 定义春节的倒计时目标时间
      let targetTime2 = new Date('2022-02-01 00:00:00').getTime();

      // 元旦倒计时
      let timer1 = setInterval(function() {
        let currentTime = new Date().getTime();
        let remainingTime = targetTime1 - currentTime;
        document.getElementById("countdown1").innerText = formatTime(remainingTime);
        if (remainingTime < 0) {
          clearInterval(timer1);
        }
      }, 1000);

      // 春节倒计时
      let timer2 = setInterval(function() {
        let currentTime = new Date().getTime();
        let remainingTime = targetTime2 - currentTime;
        document.getElementById("countdown2").innerText = formatTime(remainingTime);
        if (remainingTime < 0) {
          clearInterval(timer2);
        }
      }, 1000);
    </script>
  </body>
</html>

以上示例代码将在网页上同时显示距离2022年元旦和春节的倒计时。其中,代码部分讲解了如何获取目标时间,如何倒计时格式化,以及如何通过setInterval()函数实现定时器,同时也包含了一个完整的示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现页面多个日期时间倒计时效果 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript中setTimeout的那些事儿

    当在JavaScript中需要实现延迟执行的功能时,一种常用的方式是使用setTimeout方法。这个方法会在指定的时间后,将被执行的函数推入事件队列中,等待当前代码执行完毕之后被执行。 延迟执行代码 setTimeout方法的基本用法如下: setTimeout(function() { console.log(‘延迟1秒后执行’); }, 1000); …

    JavaScript 2023年5月28日
    00
  • javascript RegExp对象(正则表达式)

    JavaScript中的RegExp对象提供了在字符串中进行正则表达式匹配的能力。它通常用于处理字符串中的模式匹配,如验证、搜索或替换特定模式,是JavaScript中必不可少的一个功能。 RegExp对象的基本概述 创建RegExp对象 使用RegExp对象,最简单的方法是通过一个字符串的值来创建,将其作为参数传递给RegExp的构造函数: var pat…

    JavaScript 2023年6月10日
    00
  • javascript 玩转Date对象(实例讲解)

    Javascript 玩转 Date 对象(实例讲解) 日期和时间在 Javascript 中有着非常重要的地位,而 Date 对象则是用于处理日期和时间的核心对象。在本攻略中,我们将介绍 Date 对象的常用的方法和属性,并提供一些在实际项目中可能会用到的示例供参考。 初始化 Date 对象 在创建 Date 对象时,可以使用以下语句: var date …

    JavaScript 2023年6月10日
    00
  • JS通过Cookie判断页面是否为首次打开

    下面是JS通过Cookie判断页面是否为首次打开的完整攻略。 一、什么是CookieCookie是一种小型文本文件,可以被存储在客户端浏览器中,由服务器发送给浏览器,然后再下次浏览同一网站时发送给服务器。Cookie通常用于识别用户。 二、使用Cookie实现页面首次打开判断我们可以利用Cookie的特性,将判断页面是否为首次打开的标志放入Cookie中,在…

    JavaScript 2023年6月11日
    00
  • JavaScript Date对象功能与用法学习记录

    JavaScript Date对象功能与用法学习记录 什么是JavaScript Date对象? 在JavaScript中,Date对象用来表示日期和时间。它允许你通过数值表示时间,从而可以进行日期和时间的运算,比如加减、比较等操作。 一个Date对象包含了以下几个属性: 年份 (取值范围为4位数字形式,例如:2021) 月份 (0表示一月,11表示十二月)…

    JavaScript 2023年6月10日
    00
  • js数组实现权重概率分配

    下面是我对“js数组实现权重概率分配”的完整攻略: 概述 在编写JS代码时,经常会需要进行权重概率分配,即根据给定的权重,随机分配某个值。例如,我们可能需要根据一组商品的销量,按照销量大小进行分配,让销量高的商品出现的概率更大一些,从而提高展示效果。 JS中的数组提供了一种方便的实现方法。我们可以根据权重创建一个数组,数组的每个元素代表对应权重下的值,然后随…

    JavaScript 2023年5月27日
    00
  • JavaScript中消除闭包的一般方法介绍

    JavaScript中的闭包是一个常见的概念,闭包在一定程度上可以提高程序的可读性、可维护性和可扩展性。但是,闭包也可能导致内存泄漏和性能问题。在一些情况下,我们可能需要消除闭包,以保障程序的健壮性。接下来,本文将介绍几种消除闭包的一般方法。 方法1:使用let和const关键字 在ES6中,新增了let和const关键字,可以有效地消除闭包造成的内存泄漏问…

    JavaScript 2023年6月11日
    00
  • AngularJS中使用HTML5手机摄像头拍照

    AngularJS中使用HTML5手机摄像头拍照的完整攻略如下: HTML5摄像头API简介 HTML5提供了访问设备摄像头的API,这个API是Navigator.getUserMedia(),它用于打开摄像头,并且访问摄像头捕获的视频流。 实现步骤 获取用户摄像头的许可 创建一个video元素 将摄像头捕获的视频流绑定到video元素上 创建一个Canv…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部