您的位置:首页 > 其它

实现倒计时功能

2007-11-30 18:06 176 查看
在csdn的论坛上逛的时候,看到有人问这个问题,就写了写.感觉可以拿出来,就在这里做个文章吧.算是个笔记.
<html>
<head>
</head>
<body>
结束时间<input type="text" id="endtime"></input>
相隔时间<input type="text" id="time" name="time"></input>
</body>
</html>
<script type="text/javascript" >
var databasetime = new Date(2007,11,25,18,43,56);//为从数据库中提取出来的值
document.getElementById("endtime").value=dealdate(databasetime);
getdealtime();
function getdealtime(){
var now = new Date() ;
var str1 = dealdate(databasetime);
var str2 = dealdate(now);
str1 = str1.replace(/-/g,"/");
str2 = str2.replace(/-/g,"/");
var date1 = Date.parse(str1);
var date2 = Date.parse(str2);
var tmp = date1 - date2 ;
var day = parseInt(Math.floor(tmp/(24*60*60*1000)));
if(day > 0) tmp = tmp - day*24*60*60*1000 ;
var hour = parseInt(Math.floor(tmp/(60*60*1000)));
if(hour > 0) tmp = tmp - hour*60*60*1000 ;
var minute = parseInt(Math.floor(tmp/(60*1000)));
if(minute >0) tmp = tmp - minute*60*1000;
var seconds = parseInt(Math.floor(tmp/1000));
document.getElementById("time").value = day+"天"+hour+"小时"+minute+"分钟"+seconds+"秒" ;
setTimeout("getdealtime()",1000);
}
function dealdate(date){
if(date == null){
return "" ;
}
var datestr = date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear();
var hour = date.getHours().toString();
var minute = date.getMinutes().toString();
var second = date.getSeconds().toString();
if(hour.length < 2) hour = "0"+hour ;
if(minute.toString().length < 2) minute = "0"+minute ;
if(second.toString().length < 2) second = "0"+second ;
datestr +=" "+hour+":"+minute+":"+second ;
return datestr ;
}
</script>
其中, databasetime是数据库中取出的时间.然后对其进行倒计时.但是也还是存在问题的.
比如:数据库中的时间为服务器时间,而我本地的为客户端时间.所以还是存在一定问题的.可以用ajax技术,在后台进行时间的计算,用java代码去写会更容易些,然后回传到jsp中.比较懒,java的代码就不写了,肯定是要比javascript简单些的.(2007.11.30 18:11:21 anyoneking)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: