Javascript 从“H-”开关切换;“小时”;至M-“;会议记录”;在没有刷新的计时器中
我制作了这个计时器,它每小时显示H-“剩余小时数”,每分钟显示M-“剩余分钟数”,秒数相同,取决于时间戳值 您是否看到我的脚本中有需要改进的地方,以及如何在不刷新页面的情况下从小时计时器切换到分钟计时器,从分钟计时器切换到秒计时器:Javascript 从“H-”开关切换;“小时”;至M-“;会议记录”;在没有刷新的计时器中,javascript,Javascript,我制作了这个计时器,它每小时显示H-“剩余小时数”,每分钟显示M-“剩余分钟数”,秒数相同,取决于时间戳值 您是否看到我的脚本中有需要改进的地方,以及如何在不刷新页面的情况下从小时计时器切换到分钟计时器,从分钟计时器切换到秒计时器: window.onload = function() { var actual_timestamp = Math.round((new Date()).getTime() / 1000); var time_remainin
window.onload = function() {
var actual_timestamp = Math.round((new Date()).getTime() / 1000);
var time_remaining=<?php echo $vote_time_limit ?> - actual_timestamp;
var spanElt = document.getElementById('timer');
var h,m,s;
setInterval( function() {
//If time_remaining is between 24 and 1h, it decreases every hours
if(time_remaining<=86400 && time_remaining>=3600){
h=Math.floor( time_remaining / 3600 % 24);
spanElt.innerHTML="H-"+h--;
time_remaining--;
}
} , 3600000 );
setInterval( function() {
//If time_remaining is between 1h and 1min, it decreases every minutes
if(time_remaining<3600 && time_remaining>=60){
m=Math.floor( time_remaining / 60 % 60);
spanElt.innerHTML="M-"+m--;
time_remaining--;
}
} , 60000 );
setInterval( function() {
//If it is between 60sec and 0sec, it decreases every seconds
if(time_remaining<60 && time_remaining>0){
s=Math.floor( time_remaining % 60);
spanElt.innerHTML="S-"+s--;
time_remaining--;
//If time_remaining =0, it takes the value of the cycle time
}else if(time_remaining==0){
time_remaining=86400; //24h
}
} , 1000 );
};
window.onload=function(){
var actual_timestamp=Math.round((new Date()).getTime()/1000);
var time_剩余=-实际_时间戳;
var spanElt=document.getElementById('timer');
var h,m,s;
setInterval(函数(){
//如果剩余时间在24到1小时之间,则每小时减少一次
如果(剩余时间=3600){
h=数学下限(剩余时间/3600%24);
spanElt.innerHTML=“H-”+H-;
剩余时间--;
}
} , 3600000 );
setInterval(函数(){
//如果剩余时间_在1到1分钟之间,则每分钟减少一次
如果(剩余时间=60){
m=数学下限(剩余时间/60%60);
spanElt.innerHTML=“M-”+M--;
剩余时间--;
}
} , 60000 );
setInterval(函数(){
//如果介于60秒和0秒之间,则每秒钟减小一次
如果(剩余时间0){
s=数学下限(剩余时间%60);
spanElt.innerHTML=“S-”+S--;
剩余时间--;
//如果剩余时间_=0,则取循环时间的值
}else if(剩余时间==0){
剩余时间=86400;//24小时
}
} , 1000 );
};
您只需要一个计时器,然后将时钟设置为适当的值
setInterval在所需的时间间隔后尽快运行-如果系统繁忙,它将运行得稍晚并缓慢漂移。最好使用setTimeout估计到下一个历元的时间,并在下一个完整间隔后20毫秒左右再次运行它。我认为我的脚本很糟糕(一个setInterval就足够了),感谢您的帮助。