各位高手帮忙解决一个问题!!!!
每个页面都会显示系统服务器时间,当从其他页面返回时timeLen不为空,但if(document.getElementById("timeLen").value == ''){}代码却被执行,赋予另一个值,但在function showTime()中使用时却发现timeLen为原值,即赋值前的值。这时为什么?
<body>
<input type="hidden" name="timeLen" id="timeLen" value=""/>
。。。。。。
</body>
<script language="JavaScript">
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
String serverTime = DateTimeUtil.getCurServerTime();
//System.out.println("!!!!! = " + serverTime);
%>
var sd = new Date(Date.parse("<%=serverTime%>")); // 服务器时间
var bd = new Date(); // 本地时间
var dtime = bd.getTime() - sd.getTime(); // 本地时间与服务器时间差
if(document.getElementById("timeLen").value == ''){
document.getElementById("timeLen").value = dtime;
alert("设置时间差 timeLen = " + document.getElementById("timeLen").value);
}
function showTime() {
var d = new Date();
alert("设置时间差1 timeLen = " + document.getElementById("timeLen").value);
var timeLen = document.getElementById("timeLen").value;
alert("dtime = " + dtime + " timeLen=" + timeLen +"serverTime=" +sd.getTime());
d.setTime(d.getTime() - timeLen); // 矫正本地时间为服务器时间
var years = d.getFullYear() ;
var months = d.getMonth () + 1 ;
var days = d.getDate() ;
var hours=d.getHours();
var minutes=d.getMinutes();
var seconds=d.getSeconds();
months = (months <10) ? "0" + months:months;
days = (days <10) ? "0" + days:days;
hours = (hours <10) ? "0" + hours:hours;
minutes = (minutes <10) ? "0" + minutes:minutes;
seconds = (seconds<10)? "0" + seconds:seconds;
tempStr = years + "-" + months + "-" + days + " " + hours + ":" + minutes + ":" + seconds;
document.getElementById("timeText").value = tempStr;
}
setInterval("showTime()",1000);
</script>