js 倒计时不动了
我读取后台的当前时间,自己设置的结束时间,但在页面,倒计时并不会动,要刷新时间才变,请帮我看看要怎么在页面倒计时functiongetRTime(){varEndTime...
我读取后台的当前时间,自己设置的结束时间,但在页面,倒计时并不会动,要刷新时间才变,请帮我看看要怎么在页面倒计时
function getRTime() {
var EndTime = new Date('2014/12/5 21:30:00');
var NowTime = new Date('<%=startTime %>');
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); 展开
function getRTime() {
var EndTime = new Date('2014/12/5 21:30:00');
var NowTime = new Date('<%=startTime %>');
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); 展开
4个回答
展开全部
楼主的问题在于没有充分理解动态页面的含义
楼主的页面只有在刷新的时候,服务器才对应的解释一次页面,也就是说,是在刷新时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()); %>
追问
你好,请问你的
test.jsp:
是放在哪里的
追答
如果显示时间的页面是index.jsp那么test.jsp就放在和index.jsp的同一目录下就行
2014-11-11 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1748
获赞数:5543
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。
向TA提问 私信TA
关注
展开全部
<SCRIPT>
function getRTime(){
var tt = new Date();
var EndTime = new Date('2014/12/5 21:30:00');
var NowTime = new Date(tt.getFullYear()+"/"+tt.getMonth()+"/"+tt.getDate()+" "+tt.getHours()+":"+tt.getMinutes()+":"+tt.getSeconds());//获取当前时间
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);
</script>
<div id="t_d"></div><!--测试输出--!>
<div id="t_h"></div>
<div id="t_m"></div>
<div id="t_s"></div>
以上代码测试完成。
追问
请问可以符合我的情况吗,还没测试,就是想问,我读取的是后台服务器的时间,你这可以吗
追答
这个不是读取后台服务器时间的,是NowTime是用js获取的本机电脑的时间。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var time=setInterval("getRTime()",1000) 换成这种写法 应该就能动
你看你的代码 getRTime这是什么呢 我们应该是调用函数名吧 一个函数 怎么会没有括号呢
希望能帮到你 谢谢
你看你的代码 getRTime这是什么呢 我们应该是调用函数名吧 一个函数 怎么会没有括号呢
希望能帮到你 谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你每次执行getRTime的时间都是同一个,当然不会变,几种解决方法
放弃服务端时间,var NowTime = new Date('<%=startTime %>');改成var NowTime = new Date();
NowTime每次都通过ajax获取
追问
请问第二步的具体代码是什么,可以说说看吗,OK的话再加100分~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询