setInterval(promote,1000)//每秒执行一次下面的函数
function promote() {
var d = Math.floor((the_s / 3600) / 24)
var g = Math.floor((the_s - d * 24 * 3600) / 3600)
var e = Math.floor((the_s - d * 24 * 3600 - g * 3600) / 60)
var f = (the_s - g * 3600) % 60
var html = "还剩<b>" + d + "</b>天<b>" + g + "</b>时<b>" + e + "</b>分<b>" + f + "</b>秒"
document.getElementById("divdown1").innerHTML = html//这个id是你想要显示的div的id
the_s--
}
我这个定时器比你的好, 用我的. 你只要定义了the_s和要显示在哪的id. 就可以用了.
如你要显示剩余4小时, 那么将4小时转化为秒: 4*60*60=14400, 就这样调用:
var the_s = 14400setInterval(promote,1000)
就ok了. 记得要引用我的函数哟~
不知道该怎么给你描述这个概念,这样说吧。js中,时间有两种表示的:
1.Mon Feb 13 2012 02:58:41 GMT+0800
2.时间戳 1329073121000
这两者是等价的,可以互相转化的。
var t=new Date("Mon Feb 13 2012 02:58:41 GMT+0800")
alert(t-0) //把它当成一个时间戳,就是整型,可以做算术运算,结果为1329073121000
alert(t.toString()) //与alert(t)等价,结果为Mon Feb 13 2012 02:58:41 GMT+0800
我假设从服务器中得到的是时间戳
ASP代码部分:
<%
dim conn,sql
set conn = server.createobject("adodb.connection")
conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0Data Source="&server.mapPath("Database.mdb")
conn.open
sql="SELECT option FROM table WHERE type=time"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%>
HTML部分:
<html>
<head>
<title>countdown</title>
</head>
<body>
<div id="show"></div>
</body>
</html>
<script type="text/javascript">
(function(){
// var t=<%=rs("option")%>
var t=1331582321000
var show=document.getElementById('show')
setInterval(function(){
var d=count(t)
show.innerHTML=d.day+'日'+d.hour+'小时'+d.min+'分钟'+d.sec+'秒'
},1000)
//传入要倒计时的日期的时间戳,返回还剩多少日小时分钟秒
function count(t){
var c=Math.floor((t-(new Date()))/1000)
var d,h,m,s
d=Math.floor(c/24/3600)
h=Math.floor((c-d*24*3600)/3600)
m=Math.floor((c-d*24*3600-h*3600)/60)
s=Math.floor(c-d*24*3600-h*3600-m*60)
return {
day:d,
hour:h,
min:m,
sec:s
}
}
})()
</script>