当前位置: 首页 > article >正文

JavaScript-API(倒计时的实现)

基础知识

1.时间对象的使用

1.1 实例化

要获取一个时间首先需要一个关键词new了实例化

const time = new Date()

如果是获取具体的具体的时间

const time = new Date('2024-6-1 16:06:44')
1.2 日期对象方法
方法作用说明
getFullYear()获得年份获得4位年份
getMonth()获得月份取值为0-11
getDate()获得月份的每一天不同月份的值也不相同
getDay()获得星期取值为0-6
getHours()获得小时取值为0-23
getMinutes()获得分钟取值为0-59
getSeconds()获得秒取值为0-59

使用如下:

 <script>
    const div = document.querySelector('div')
    function getmytime() {
      const date = new Date()
      let year = date.getFullYear() 
      let month = date.getMonth()+1
      let day = date.getDay()
      return `今天是${year}-${month}—${day}`
    }
    div.innerHTML = getmytime()
    
  </script>

2.时间戳的使用

时间戳的使用分为3种方法

        使用  getTime()方法实现

const date = new Date()
console.log(date.getTime())

        使用   +new Date()

console.log(+new Date())

         Date.now(),但是不可以返回时间戳

console.log(Date.now())

下面是一个简单的案例,实现星期几的表达

// 根据时间Day() 0-6返回天数,设置一个数组,可以返回天数
    const arr = ['星期天','星期一','星期二','星期三','星期四','星期五','星期六']
    console.log(arr[new Date().getDay()])

到了重点部分,我们现在来使用时间戳的方法去实现倒计时(重点部分看到js的部分)

思路讲解:

第一步:需要获取当前的时间戳(now)和未来你需要使用的时间戳(last)

第二步:计算出2个时间戳之间的时间间距,由于他是以毫秒计算出来,我们需要去除以1000转化为一秒来显示

第三步:进行事件的转换,计算出天数,小时,分钟,秒

                    d = parseInt(count / 60 / 60 / 24)      //计算天数

                    h = parseInt(总秒数 / 60 / 60 % 24)   //   计算小时

                    m = parseInt(总秒数 / 60 % 60);     //   计算分数

                     s = parseInt(总秒数 % 60);    //计算秒数

第四步:获取对应的元素,然后将第三步里面计算出来的东西写入到获取到的元素里面

第五步:将去上面几个步骤全部封装到一个函数里面

第六步:首先先调用一次函数,这样在我们打开html的时候就会首先更新到当前的内容

第七步:使用时间定时器,买1秒更新一次,这样就实现了自动记时

代码如下(请去实践,不要直接使用,需要有自己的思维):

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <style>
    .countdown {
      margin: auto;
      width: 400px;
      height: 305px;
      text-align: center;
      line-height: 1;
      color: #fff;
      background-color: brown;
      /* background-size: 240px; */
      /* float: left; */
      overflow: hidden;
    }

    .countdown .next {
      font-size: 16px;
      margin: 25px 0 14px;
    }

    .countdown .title {
      font-size: 33px;
    }

    .countdown .tips {
      margin-top: 80px;
      font-size: 23px;
    }

    .countdown small {
      font-size: 17px;
    }

    .countdown .clock {
      width: 300px;
      margin: 18px auto 0;
      overflow: hidden;
    }

    .countdown .clock span,
    .countdown .clock i {
      display: block;
      text-align: center;
      line-height: 34px;
      font-size: 23px;
      float: left;
    }

    .countdown .clock span {
      width: 60px;
      height: 34px;
      border-radius: 2px;
      background-color: #303430;
    }

    .countdown .clock i {
      width: 20px;
      font-style: normal;
    }
  </style>
</head>

<body>
  <div class="countdown">
    <p class="next">今天是2222年2月22日</p>
    <p class="title">毕业倒计时</p>
    <p class="clock">
      <span id="day">00</span>
      <i>:</i>
      <span id="hour">00</span>
      <i>:</i>
      <span id="minutes">25</span>
      <i>:</i>
      <span id="scond">20</span>
    </p>
    <p class="tips">2027-7-1 00:00:00你就毕业了</p>
  </div>
  <script>
    //函数封装
    function getCountTime() {
          //1. 获得当前时间
        const now = +new Date()

        //2. 获得未来时间
        const last = +new Date('2027-9-1 00:00:00')

        //3.计算之间的时间距离
        const count = (last - now) / 1000
        console.log(count)

        // 4.时间转换
            // h = parseInt(总秒数 / 60 / 60 % 24)   //   计算小时
            //   // m = parseInt(总秒数 / 60 % 60);     //   计算分数
            //   // s = parseInt(总秒数 % 60);   
        let d = parseInt(count / 60 / 60 / 24)  //天数
        d = d < 10 ? '0' + d : d
        let h = parseInt(count / 60 / 60 % 24) //小时
        h = h < 10 ? '0' + h : h
        let m = parseInt(count / 60 % 60)      //分钟
        m = m < 10 ? '0' + m : m
        let s = parseInt(count % 60)            //秒
        s = s < 10 ? '0' + s : s
        console.log(d,h,m,s)

        //5.获取对应的标签
        const day = document.querySelector('#day')
        const hour = document.querySelector('#hour')
        const minutes = document.querySelector('#minutes')
        const scond = document.querySelector('#scond')
        day.innerHTML = d
        hour.innerHTML = h
        minutes.innerHTML = m
        scond.innerHTML = s

        //获取元素
        const nows = document.querySelector('.next')
        const date = new Date
        let hh = date.getFullYear()
        let mm = date.getMonth()
        let dd = date.getDay()
        nows.innerHTML = `今天是${hh}年${mm}月${dd}日`
      }
      //先调用一次
      getCountTime()
      //使用时间定时器
      setInterval(getCountTime, 1000)
  </script>
</body>

</html>

我们的倒计时小案例完成,如有其它更好的方法评论区留言交流!!!


http://www.kler.cn/news/340939.html

相关文章:

  • 【漏洞复现】宏景-HCM KhFieldTree Sql注入漏洞
  • MySQL 是否支持 XML
  • ISCC认证是什么?ISCC认证的申请流程有哪些注意事项?
  • VBA高级应用30例应用3Excel中的ListObject对象:选择表的一部分
  • 团标大数据(2024年09月)
  • PWR电源控制
  • R语言绘制柱状图
  • 深入理解AWS目标组运行状况
  • 刷题 双指针 滑动窗口
  • PHP支持回调函数的数组函数
  • house_of_muney
  • Hadoop服务端口号、Spark端口号、Hive端口号以及启动命令
  • 基于 Spring Boot + Quartz 实现定时任务持久化配置
  • 水下图像增强(论文复现)
  • Anaconda创建环境
  • 深度学习:循环神经网络—RNN的原理
  • Python知识点:利用Python工具,如何使用OpenCV进行图像处理
  • Tailwind Css的使用
  • java的LinkedList
  • 搜维尔科技:使用 SenseGlove Nova 2 远程操作机械手,实现了对鸡蛋的精细操控