一、主要思路
1.通过内置时间函数实例化日期对象获取当前时间 new Date。
2.因为时间无法减去时间,有可能生成负数,所以采用时间戳的方法得到毫秒数形式的剩余时间,然后再把剩余时间转换为天、时、分、秒格式。
3.最后把所获得的内容赋值给定义的变量。
二、css样式
主要为了内容在页面展示美观,稍微美化一下。
<style>
p{
font-size: 36px;
margin: 0 auto;
text-align: center;
line-height: 500px;
}
span{
color: red;
}
</style>
三、html代码
定义一个默认格式为JavaScript引入定义变量。
<p>倒计时:<span>0</span>天<span>0</span>时<span>0</span>分<span>0</span>秒</p>
四、js内容
1.首先获取html里面的spans里的全部标签用querySelectorAll获取。
2.用endTime标签定义结束时间,并给结束时间赋值。
3.同理,用newTine标签定义结束标签。
4.定义diffTime用来取结束时间减去现在时间获取的毫秒。
5.getTime标签主要用来将获取的时间转化为毫秒形式。
6.除以1000是提前将毫秒转化为秒。
var spans = document.querySelectorAll('span');
var endTime = new Date ('2022-10-1 12:00:00').getTime();
var newTime = new Date ().getTime();
var diffTime = (endTime-newTime)/1000;
1.定义day,hour,min,sen用来定义倒计时的天、时、分、秒。
2.parseInt用来将得到的值转化为整数形式。
3.用得到的秒/60得到多少分再/60得到多少时再/24得到多少天。
4.hour/60/60%24:用所得的时间把大数除以24取余得到还要多少小时,分,秒同理。
var day = parseInt(diffTime/60/60/24);
var hour = parseInt(diffTime/60/60%24);
var min = parseInt(diffTime/60%60);
var sen = parseInt(diffTime%60);
将所得到的天、时、分、秒通过innerText方式给之前定义span标签赋值。
spans[0].innerText = day;
spans[1].innerText = honur;
spans[2].innerText = min;
spans[3].innerText = sen;
最后将整个JavaScript中的内容定义一个函数中,在定时器中调用整个函数实现倒计时的效果。
showTime是我定义的函数名,1000代表1000毫米循环一次函数。
setInterval(showTime,1000)
五、完整代码展示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
p {
font-size: 36px;
margin: 0 auto;
text-align: center;
line-height: 500px;
}
span {
color: red;
}
</style>
</head>
<body>
<p>倒计时:<span>0</span>天<span>0</span>时<span>0</span>分<span>0</span>秒</p>
<script>
function showTime() {
var spans = document.querySelectorAll('span');
var endTime = new Date('2022-10-1 12:00:00').getTime();
var newTime = new Date().getTime();
var diffTime = (endTime - newTime) / 1000;
var day = parseInt(diffTime / 60 / 60 / 24);
var honur = parseInt(diffTime / 60 / 60 % 24);
var min = parseInt(diffTime / 60 % 60);
var sen = parseInt(diffTime % 60);
spans[0].innerText = day;
spans[1].innerText = honur;
spans[2].innerText = min;
spans[3].innerText = sen;
}
setInterval(showTime, 1000)
</script>
</body>
</html>
六、效果展示
版权归原作者 青青草原小魔王 所有, 如有侵权,请联系我们删除。