js 倒计时不动了

2025-06-20 14:33:08
推荐回答(4个)
回答1:

楼主的问题在于没有充分理解动态页面的含义

楼主的页面只有在刷新的时候,服务器才对应的解释一次页面,也就是说,是在刷新时var NowTime = new Date('<%=startTime %>');的时间就已经是写死的了,不会在改变


如果想通过线程实时刷新服务器时间,那么就用Ajax向服务器实时申请就好了。楼主这么写动态页面肯定是不行的,除非...这么改一下


在if (EndTime <= NowTime) 上面加一句


window.location = window.location。让线程每一秒刷新一次页面。不停地让服务器去解释新的时间。


本人不是做jsp的,擅长php。楼主先试试这个代码

 function getRTime() {
            var EndTime = new Date('2014/12/5 21:30:00');
            var NowTime;
            $.ajax({
            url:"test.jsp",
    type:"POST",
    //data:{str:""},
    error: function(){alert("error");},
    success: function(data){NowTime = new Data(data)}
    });
            
           var t = EndTime.getTime() - NowTime.getTime();
                var d = Math.floor(t / 1000 / 60 / 60 / 24);
                var h = Math.floor(t / 1000 / 60 / 60 % 24);
                var m = Math.floor(t / 1000 / 60 % 60);
                var s = Math.floor(t / 1000 % 60);
                document.getElementById("t_d").innerHTML = d + " ";
                document.getElementById("t_h").innerHTML = h + "";
                document.getElementById("t_m").innerHTML = m + "";
                document.getElementById("t_s").innerHTML = s;
                var in1 = document.getElementById("Button1");
                var in2 = document.getElementById("Button2");
                if (EndTime <= NowTime) {
                    in1.style.display = "none";
                    in2.style.display = 'block';
                    document.getElementById("t_d").innerHTML =    + " ";
                    document.getElementById("t_h").innerHTML = "00" + "";
                    document.getElementById("t_m").innerHTML = "00" + "";
                    document.getElementById("t_s").innerHTML = "00";
                    window.clearInterval(time);
                }
            }
            var time = setInterval(getRTime, 1000);


test.jsp:

<% out.println(new Date()); %>

回答2:






以上代码测试完成。

回答3:

var time=setInterval("getRTime()",1000) 换成这种写法 应该就能动
你看你的代码 getRTime这是什么呢 我们应该是调用函数名吧 一个函数 怎么会没有括号呢
希望能帮到你 谢谢

回答4:

你每次执行getRTime的时间都是同一个,当然不会变,几种解决方法

  1. 放弃服务端时间,var NowTime = new Date('<%=startTime %>');改成var NowTime = new Date();

  2. NowTime每次都通过ajax获取

相关问答
最新问答