开发者社区> 神巧合> 正文

js实现抢购倒计时精确到毫秒 到期提示“抢购已结束”

简介: <%@ page language="java" contentType="text/html; charset=utf-8"     pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d
+关注继续查看
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script language="JavaScript">  
function ShowTimes(){  
var endtime=new Date("2016/11/12,17:20:00"); 
var nowtime = new Date(); 
LeaveTime=endtime-nowtime;
LeaveDays=Math.floor(LeaveTime/(1000*60*60*24));//天  
LeaveHours=Math.floor(LeaveTime/(1000*60*60)%24);//时  
LeaveMinutes=Math.floor(LeaveTime/(1000*60)%60);//分  
LeaveSeconds=Math.floor(LeaveTime/1000%60);//秒  
var c=new Date();  
var q=c.getMilliseconds();  
if(q<10)//因为毫秒为一位数时只占一个字符位置,会让毫秒二字变动位置  
{  
    q="00"+c.getMilliseconds();  
}  
if(q>=10 && q<100)//因为毫秒为两位数时只占两个字符位置,会让毫秒二字变动位置  
{  
    q="0"+c.getMilliseconds();  
}
 if(LeaveTime<0){
hxtime.innerHTML="抢购已结束";
clearInterval(s);//结束循环
}else{
 
hxtime.innerHTML="距离相见的日子还有<font color=red>"+LeaveDays+"</font>天<font color=red>"+LeaveHours+"</font>时<font color=red>"+LeaveMinutes+"</font>分<font color=red>"+LeaveSeconds+"</font>秒<font color=red>"+q+"</font>毫秒";  
}
}  
var s =setInterval(ShowTimes,5);  //循环执行 ShowTimes函数每隔5ms
</script>  
</HEAD>  
<BODY>  
<div id="hxtime" style="padding:5px 0 0 0;"></div> 
</BODY>  
</HTML>

因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次 
而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式 
所以,完全是不一样的 

很多人习惯于将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的 这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果 

使用的时候各有各的优势,使用setInterval,需要手动的停止tick触发。而使用方法中嵌套setTimeout,可以根据方法内部本身的逻辑不再调用setTimeout就等于停止了触发。


setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束。如果运行的代码中再次运行同样的setTimeout命令,则可循环运行。
setinterval是循环运行的,即每到设定时间间隔就触发指定代码。这是真正的定时器。
setinterval使用简单,而setTimeout则比较灵活,可以随时退出循环,而且可以设置为按不固定的时间间隔来运行,比如第一次1秒,第二次2秒,第三次3秒……


参考文章:

http://heisetoufa.iteye.com/blog/269566

http://www.cnblogs.com/mbtq/archive/2012/10/25/2740023.html

http://blog.sina.com.cn/s/blog_921bd9650101db4b.html

   

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
js实现倒计时
js实现倒计时
17 0
js代码实现倒计时秒杀的效果
实际项目中,需求一个倒计时秒杀功能,每天下午6点后,计算距离第二天上午10点的小时、分钟、秒数,计时到第二天上午10点后开启抢购功能;代码如下
59 0
JavaScript实现倒计时
JavaScript实现倒计时
29 0
js 功能-倒计时|学习笔记
快速学习 js功能-倒计时
45 0
通过JS做一个简单的倒计时Demo
通过原生JS实现简单的倒计时
34 0
js 实现倒计时功能,兼容ios,类似京东
js 实现倒计时功能,兼容ios,类似京东
75 0
【70行JavaScript代码实现除夕夜倒计时 零基础也能学会~
70行代码实现除夕夜倒计时 零基础也能会
107 0
#yyds干货盘点# Html+Css+js实现春节倒计时效果(移动端和PC端)
#yyds干货盘点# Html+Css+js实现春节倒计时效果(移动端和PC端)
68 0
如何写一个js指定时间倒计时
如何写一个js指定时间倒计时
66 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Javascript中的函数
立即下载
Javascript异步编程
立即下载
JS零基础入门教程(上册)
立即下载