从H "小时"M产生绯闻,minutes"在没有刷新的计时器中
Switch from the H-"hours" to M-"minutes" in a timer whitout refreshing
我制作了这个计时器,它每小时显示H-"剩余小时",每分钟显示M-"剩余分钟",秒也一样,取决于时间戳值。
你在我的脚本中看到需要改进的地方吗?以及如何从小时计时器切换到分钟计时器,从分钟计时器切换到秒计时器,而不刷新页面:
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 );
};
您只需要一个计时器,并将时钟设置为适当的值。
setInterval在所需的时间间隔后尽快运行-如果系统繁忙,它将运行得稍微晚一些并慢慢漂移。最好使用setTimeout -估计到下一个epoch的时间,并在下一个整个间隔后大约20ms再次运行它。
相关文章:
- 强制模板刷新ember.js
- 如何通过ajax刷新JSF填充的javascript变量
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何解决Yii中的页面刷新问题
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- Jquery提交表单而不刷新
- 刷新页面后会出现警报
- 刷新后保留对网页的更改
- 如何在不刷新页面的情况下更新显示框
- 重定向时角度刷新浏览器
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- Javascript,输出结果后页面不断刷新
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- 使用“+="操作人员
- 刷新父窗口后无法关闭窗口
- 刷新页面时hasClass不起作用
- "过渡到“;影响Ember中的页面刷新
- 为什么"document.styleSheets”;每次刷新3到5次浏览器后返回空值