实现倒计时功能

本文介绍了一种使用JavaScript实现倒计时的方法,并讨论了如何处理服务器时间和客户端时间不一致的问题。通过示例代码展示了如何从数据库获取时间并进行倒计时显示。
在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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值