今天做了一个倒计时的案例,代码如下:
function clock() {
var nowTime = new Date();
var endTime = new Date("2019/5/23 14:51:00");
var now = nowTime.getTime();
var end = endTime.getTime();
var time = end - now;
var seconds = time/1000;
if (seconds > 0){
var hour = Math.floor(seconds/3600);
var minute = Math.floor(seconds%3600 / 60);
var second = Math.floor(seconds%60);
my$("box").innerText = bu(hour)+":"+bu(minute)+":"+bu(second);
}else{
my$("box").innerText = "下课了!";
clearInterval(timeId);
}
}
clock();
var timeId = setInterval(clock(),1000);
这段代码输出的时候函数只执行了一次,计时器的效果没有,经过几次的检查发现是计时器中参数问题,var timeId = setInterval(clock(),1000) 中第一个参数此时添加的clock()的值是函数的返回值,因为clock()中没有返回值,所以才出问题,改为var timeId = setInterval(clock,1000) 就解决了