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

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()+1let 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) / 1000console.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 : dlet h = parseInt(count / 60 / 60 % 24) //小时h = h < 10 ? '0' + h : hlet m = parseInt(count / 60 % 60)      //分钟m = m < 10 ? '0' + m : mlet s = parseInt(count % 60)            //秒s = s < 10 ? '0' + s : sconsole.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 = dhour.innerHTML = hminutes.innerHTML = mscond.innerHTML = s//获取元素const nows = document.querySelector('.next')const date = new Datelet 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.lryc.cn/news/456857.html

相关文章:

  • 【C++】——继承【上】
  • SpringBoot 整合 阿里云 OSS图片上传
  • 内核编译 设备驱动 驱动程序
  • 自由学习记录
  • 在 C# 中使用 LINQ 查询文件列表并找出最大文件
  • 数学建模算法与应用 第6章 微分方程建模及其求解方法
  • 数据库的相关知识
  • Python cachetools常用缓存算法汇总
  • java类和对象_成员变量方法修饰符局部变量this关键字-cnblog
  • 海信和TCL雷鸟及各大品牌智能电视测评
  • Linux 基本系统命令及其使用详解手册(六)
  • Oracle架构之段管理和区管理
  • mybatis-plus转换数据库json类型数据为java对象
  • Java | Leetcode Java题解之第467题环绕字符串中唯一的子字符串
  • 诺贝尔物理奖与化学奖彰显AI力量,探索智能新边界
  • 基于京东:HotKey实现自动缓存热点Key!!!
  • ★ 算法OJ题 ★ 二分查找算法
  • RTSP RTP RTCP SDP基础知识
  • 静态变量、变量作用域、命名空间
  • Android笔记(二十四)基于Compose组件的MVVM模式和MVI模式的实现
  • MySQL 是否支持 XML
  • pikachu靶场总结(四)
  • 24.3 基于文件的服务发现模式
  • 【Java】面向UDP接口的网络编程
  • SRS服务器搭建
  • iMazing只能苹果电脑吗 Win和Mac上的iMazing功能有区别吗
  • ChatGPT可以分析股票吗?
  • Dockerfile搭建镜像
  • Kubernetes-Kind篇-01-kind搭建测试集群
  • 在UniApp中高效处理大量文件请求的策略