JavaScript倒计时实现
原理:
利用JavaScript的date时间内置对象获得当前时间的时间戳,以及你需要的时间的时间戳,两者之间的时间差就是倒计时。
再把时间差的毫秒数转换成天、时、分,和秒。
实现代码:
<!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>
*{
padding: 0;margin: 0;
}
body{
display: flex;
justify-content: center;
align-items: center;
}
.hours{
width: 100px;
height: 100px;
border: 10px solid #ccc;
margin: 100px 20px;
line-height: 100px;
text-align: center;
}
.min{
width: 100px;
height: 100px;
border: 10px solid #ccc;
line-height: 100px;
text-align: center;
margin: 100px 20px;
}
.scecond{
width: 100px;
height: 100px;
border: 10px solid #ccc;
margin: 100px 20px;
line-height: 100px;
text-align: center;
}
</style>
</head>
<body>
<div class="hours"></div>
<div class="min"></div>
<div class="scecond"></div>
<script>
let h=document.querySelector(".hours");
let m=document.querySelector(".min");
let s=document.querySelector(".scecond");
function countDown(time){
let nowTime=+new Date();
let inputTime=+new Date(time);
let times=(inputTime-nowTime)/1000;
let day=Math.floor(times/86400);
let hours=Math.floor((times%86400)/3600);
let min=Math.floor( ((times%86400)%3600)/60 );
let scecond=Math.floor( (((times%86400)%3600)%60) );
// var scecond=Math.floor( times%60 ); 这个也可以求秒数,更简单
console.log(day+'天'+hours+'时'+min+'分'+scecond+'秒');
h.innerHTML=hours+`小时`;
m.innerHTML=min+`分`;
s.innerHTML=scecond+`秒`;
//利用求余方式求的是整数天数、小时、分钟,分钟过后然后把余下的秒数输出就行
}
setInterval(countDown,1000,"2022-3-22 17:00:00");
</script>
</body>
</html>
显示效果:
该效果是2022年三月22日16:04分时候的时间和当天17点00分剩余的时候