楼主的问题在于没有充分理解动态页面的含义
楼主的页面只有在刷新的时候,服务器才对应的解释一次页面,也就是说,是在刷新时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()); %>
以上代码测试完成。
var time=setInterval("getRTime()",1000) 换成这种写法 应该就能动
你看你的代码 getRTime这是什么呢 我们应该是调用函数名吧 一个函数 怎么会没有括号呢
希望能帮到你 谢谢
你每次执行getRTime的时间都是同一个,当然不会变,几种解决方法
放弃服务端时间,var NowTime = new Date('<%=startTime %>');改成var NowTime = new Date();
NowTime每次都通过ajax获取