我在做一个拍卖的功能,前台用js方法写了一个setInterval倒计时,用js获取当前时间,然后根据最后一个出价人的时间,倒计时24个小时,将这个时间以倒计时方法写在页面上。可是这么做会出现一个问题:
假如最后一个出价时间是在 09-8-5 19:12:56 那么应该到09-8-6 19:12:56 拍卖结束
可是因为js获取的是客户端的时间,那么就会产生问题
如果客户端时间不对,如果早了,程序会报异常;如果客户端时间晚了,那么倒计时就永远结束不了了
所以现在想换一个方法:在后台取得程序的当前时间,用这个时间减去最后一次出价时间,将这个时间差返回给前台js,比如返回的是 7:15:40 ,js每隔一秒调用方法,在这个方法里每隔一秒减去这个时间差
大家明白我的意思么?或者,我该用其他什么办法?反正获取客户端的时间是行不通的

解决方案 »

  1.   

    把最后一次出价时间写入一个application,如:
    application("lastquote")=最后一次出价时间剩下的就好办了,用datediff比较application("lastquote")和now().......................
      

  2.   

    忘写了:然后客户端定时AJAX来服务器取这个时间差
      

  3.   

    回2楼:
    剩下的就好办了,用datediff比较application("lastquote")和now().......................你这个now()是客户端时间呢?还是服务器时间?
      

  4.   

    要和application(xxxx)比较的是当然是服务器时间啊
      

  5.   

    google:  asp datediff函数的用法
      

  6.   

    <script language="javascript" type="text/javascript">
    function DateDiff(sDate1,sDate2){ //sDate1和sDate2是年-月-日格式 
    var aDate,oDate1,oDate2,iDays;
    aDate=sDate1.split("-");
    oDate1=new Date(aDate[1]+'-'+aDate[2]+'-'+aDate[0]);//转换为月-日-年格式 
    aDate=sDate2.split("-");
    oDate2=new Date(aDate[1] + '-'+aDate[2]+'-'+aDate[0]);
    iDays=parseInt(Math.abs(oDate1-oDate2)/1000/60/60/24); //把相差的毫秒数转换为天数 
    alert(iDays);
    }
    var date,date1,date2;
    date=new Date();
    date1="2005-9-23";
    date2=date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
    alert(date2);
    DateDiff(date1,date2);
    </script>
    java的
    Date date1 = new Date();
    Date date2 = new Date();
    System.out.println("create index: " + (date2.getTime() - date1.getTime())+ " total milliseconds"); 
      

  7.   

        考虑做个java定时器咯
      

  8.   

    我想这么做:
    后台算出系统时间-上次出价时间的毫秒值,返回给前台js,var t = 后台返回的总毫秒值   //js将这个毫秒值赋值给一个变量var tid = setInterval("coundDown(t)",1000);   //每隔一秒用倒计时方法fucntion countDown(time){
       每次减去1秒钟
        var t = 减去一秒钟后的毫秒值
    }就是不知道countDown中的代码还怎么写。。
      

  9.   

    JSP<script type="text/javascript">
    // var now = new Date();
    var now = new Date(<%=System.currentTimeMillis()%>); // 获取服务器时间, 因为网络传递,会有偏差// ...
    </script>
      

  10.   

    我也正在做一个拍卖的倒计时,你解决了吗?能不能给我发一份解决方案?谢谢!
    [email protected]