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>
我们的倒计时小案例完成,如有其它更好的方法评论区留言交流!!!