window.onload=function(){ let nowTime = new Date(); let endTime=nowTime.setDate(nowTime.getDate()+5);
//把年月日时分秒的时间转换成为毫秒数
//定义变量 天数 小时 分钟 秒数
//设置定时器 实现一个秒杀效果
var timer = setInterval(qiang,1000);
let button = document.getElementById('buy');
function qiang(){
// 获取当前系统时间
// 获取当前时间差---nowTime.getTime()现在时间的毫秒数
var remain = parseInt((endTime-nowTime)/1000);
//判断秒杀是否过期
if(remain>0){
//1.计算剩余天数 (除以60*60*24 取整数 获取剩余天数)
d = parseInt(remain/86400);
console.log(1)
//2.计算剩余小时(除以60*60 转换成为小时了 与24进行取模 获取剩余小时)
h = parseInt((remain/3600) / 24);
//3.计算剩余分钟(除以60 转换成为分钟了 与60进行取模 获取剩余分钟)
m = parseInt((remain/60)/ 60);
//4.计算剩余秒数(与60进行取模 获取剩余秒数)
s = parseInt((remain) / 60);
button.disabled=true;
//统一利用两位数 表示 剩余的天、小时、分钟、秒
d= d < 10 ? '0' + d:d;
h= h < 10 ? '0' + h:h;
m= m < 10 ? '0' + m:m;
s= s < 10 ? '0' + s:s;
}else{
button.disabled=false;
// 秒杀过期 取消定时器
clearInterval(timer);
d = h = m = s = '00';
}
//将剩余的天数、小时、分钟、秒 小时到指定网页中去
document.getElementById("d").innerHTML = d + '天';
document.getElementById("h").innerHTML = h + '时';
document.getElementById("m").innerHTML = m + '分';
document.getElementById("s").innerHTML = s + '秒';
}
}
在你入口函数下调用一下qiang这个方法
可以按照我这个写一下
js文件
window.onload = function(){
f1();
}
function f1() {
//现在的时间
var now1 = new Date();
//未来的时间
var now2 = new Date();
now2.setHours("20");
now2.setMinutes("15");
now2.setSeconds("59");
//时间差
var time = now1.getTime() - now2.getTime();
//time = -time;
if(time < 0) {
// 总共小时
var hour = parseInt(time / (60 * 60 * 1000));
hour = -hour;
// 取余
time = time % (60 * 60 * 1000);
// 拿余数取分钟
var minute = parseInt(time / (60 * 1000));
minute = -minute
// 分钟取余
time = time % (60 * 1000);
// 拿分钟取秒
var seconde = parseInt(time / 1000);
seconde = -seconde
document.getElementById("hour").innerText = f2(hour);
document.getElementById("minute").innerText = f2(minute);
document.getElementById("seconde").innerText = f2(seconde);
} else {
document.getElementById("hour").innerText = "00";
document.getElementById("minute").innerText = "00";
document.getElementById("seconde").innerText = "00";
}
}
function f2(param) {
if(param <= 9) {
param = "0" + param
}
return param;
}
window.setInterval(function nowDate() {
f1()
}, 10000);
html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>京东倒计时</title>
<link rel="stylesheet" type="text/css" href="css/京东倒计时.css" />
<script src="js/京东倒计时.js" type="text/javascript" charset="utf-8"></script>
</head>
<script type="text/javascript">
</script>
<body>
<div id="body">
<div class="countdown-title">京东秒杀</div>
<div class="countdown-desc"><strong>20:00</strong>点场 倒计时</div>
<div id="" class="timmer">
<span class="unit_hour" id="hour">00</span>
<span class="one">:</span>
<span class="unit_minute" id="minute"></span>
<span class="one">:</span>
<span class="unit_second" id="seconde"></span>
</div>
</div>
</body>
</html>
你代码逻辑有问题。首先nowTime、endTime没法相减。一个时时间戳,一个时标准时间。其次就是逻辑问题。d,h,m,s始终不变
,
//把年月日时分秒的时间转换成为毫秒数
//定义变量 天数 小时 分钟 秒数
//设置定时器 实现一个秒杀效果
let nowTime = new Date();
let endTime=nowTime.setDate(nowTime.getDate()+5);
var button = document.getElementById('buy');
var timer = setInterval(() => { qiang(nowTime.getTime()-1000000000, endTime, button) }, 1000);
function qiang(nowTime, endTime, button) {
// 获取当前系统时间
// 获取当前时间差---nowTime.getTime()现在时间的毫秒数
var remain = parseInt((endTime - nowTime) / 1000);
console.log(remain)
//判断秒杀是否过期
if (remain > 0) {
//1.计算剩余天数 (除以60*60*24 取整数 获取剩余天数)
d = parseInt(remain / 86400);
// console.log(1)
//2.计算剩余小时(除以60*60 转换成为小时了 与24进行取模 获取剩余小时)
h = parseInt((remain / 3600) / 24);
//3.计算剩余分钟(除以60 转换成为分钟了 与60进行取模 获取剩余分钟)
m = parseInt((remain / 60) / 60);
//4.计算剩余秒数(与60进行取模 获取剩余秒数)
s = parseInt((remain) / 60);
button.disabled = true;
//统一利用两位数 表示 剩余的天、小时、分钟、秒
d = d < 10 ? '0' + d : d;
h = h < 10 ? '0' + h : h;
m = m < 10 ? '0' + m : m;
s = s < 10 ? '0' + s : s;
} else {
button.disabled = false;
// 秒杀过期 取消定时器
clearInterval(timer);
d = h = m = s = '00';
}
//将剩余的天数、小时、分钟、秒 小时到指定网页中去
document.getElementById("d").innerHTML = d + '天';
document.getElementById("h").innerHTML = h + '时';
document.getElementById("m").innerHTML = m + '分';
document.getElementById("s").innerHTML = s + '秒';
}