JS实现页面多个日期时间倒计时效果的攻略如下:
1. 获取倒计时目标时间
首先,我们需要通过JS获取到倒计时的目标时间。目标时间可以通过后端接口获取,也可以通过前端手动指定。我们可以使用Date对象,把目标时间转化为时间戳,之后再与当前时间的时间戳作差,得到剩余时间。
// 获取目标时间
let targetTime = new Date('2022-01-01 00:00:00').getTime();
// 获取当前时间
let currentTime = new Date().getTime();
// 剩余时间
let remainingTime = targetTime - currentTime;
2. 倒计时的格式化
计算出倒计时的剩余时间后,我们需要将剩余时间格式化成我们需要的样式。常见的倒计时样式有天-时-分-秒
或时-分-秒
,以天数为单位的倒计时还需要把剩余时间转化为“天-时-分-秒”的格式。
// 将剩余时间格式化为天-时-分-秒的格式
function formatTime(time) {
let day = Math.floor(time / (1000 * 60 * 60 * 24));
let hour = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
let minute = Math.floor((time % (1000 * 60 * 60)) / (1000 * 60));
let second = Math.floor((time % (1000 * 60)) / 1000);
return `${day}天${hour}时${minute}分${second}秒`;
}
3. 定时器实现倒计时
有了倒计时的目标时间和格式化后的剩余时间,我们就可以通过定时器实时更新倒计时了。通过setInterval()函数,我们可以设置倒计时每隔一段时间更新一次。
// 倒计时显示到页面上
let timer = setInterval(function() {
let currentTime = new Date().getTime();
let remainingTime = targetTime - currentTime;
document.getElementById("countdown").innerText = formatTime(remainingTime);
if (remainingTime < 0) {
clearInterval(timer);
}
}, 1000);
示例
下面是一个使用上述攻略实现简单倒计时的示例,页面上同时倒计时两个目标时间,一个是2022年元旦,一个是2022年春节:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>倒计时</title>
</head>
<body>
<p>距离2022年元旦还有<span id="countdown1"></span></p>
<p>距离2022年春节还有<span id="countdown2"></span></p>
<script>
// 定义格式化时间函数
function formatTime(time) {
let day = Math.floor(time / (1000 * 60 * 60 * 24));
let hour = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
let minute = Math.floor((time % (1000 * 60 * 60)) / (1000 * 60));
let second = Math.floor((time % (1000 * 60)) / 1000);
return `${day}天${hour}时${minute}分${second}秒`;
}
// 定义元旦的倒计时目标时间
let targetTime1 = new Date('2022-01-01 00:00:00').getTime();
// 定义春节的倒计时目标时间
let targetTime2 = new Date('2022-02-01 00:00:00').getTime();
// 元旦倒计时
let timer1 = setInterval(function() {
let currentTime = new Date().getTime();
let remainingTime = targetTime1 - currentTime;
document.getElementById("countdown1").innerText = formatTime(remainingTime);
if (remainingTime < 0) {
clearInterval(timer1);
}
}, 1000);
// 春节倒计时
let timer2 = setInterval(function() {
let currentTime = new Date().getTime();
let remainingTime = targetTime2 - currentTime;
document.getElementById("countdown2").innerText = formatTime(remainingTime);
if (remainingTime < 0) {
clearInterval(timer2);
}
}, 1000);
</script>
</body>
</html>
以上示例代码将在网页上同时显示距离2022年元旦和春节的倒计时。其中,代码部分讲解了如何获取目标时间,如何倒计时格式化,以及如何通过setInterval()函数实现定时器,同时也包含了一个完整的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现页面多个日期时间倒计时效果 - Python技术站