收录日期:2018/08/17 01:46:34 时间:2016/05/20 18:28:18 标签:JavaScript
下面这段代码可以用来显示本机的时间,可怎样才能让它显示服务器的时间呢?我试着把<script language=JavaScript>改为<script language=JavaScript runat="server">可预览网页提示"window"未定义,请高手指点.

======================================================
<script language=JavaScript>
function tick() {
var hours, minutes, seconds, xfile;
var intHours, intMinutes, intSeconds;
var today;
today = new Date();
intHours = today.getHours();
intMinutes = today.getMinutes();
intSeconds = today.getSeconds();
if (intHours == 0) {
hours = "12:";
xfile = "午夜";
} else if (intHours < 12) {
hours = intHours+":";
xfile = "上午";
} else if (intHours == 12) {
hours = "12:";
xfile = "正午";
} else {
intHours = intHours - 12
hours = intHours + ":";
xfile = "下午";
}
if (intMinutes < 10) {
minutes = "0"+intMinutes+":";
} else {
minutes = intMinutes+":";
}
if (intSeconds < 10) {
seconds = "0"+intSeconds+" ";
} else {
seconds = intSeconds+" ";
}
timeString = xfile+hours+minutes+seconds;
Clock.innerHTML = timeString;
window.setTimeout("tick();", 100);
}
window.onload = tick;
</script>
我劝你最好用JSP吧
可以给你jsp如何获得服务器时间的代码:
<%=new java.util.Date().toString()%>获得时间
当然了!
window对象实际是页在客户IE中显示时,当前IE的一个view,而你的javascrit runat=server那么实际是在服务器端的IIS asp环境运行,何来window对象。

你的tick是服务器端代码,不可能被客户端脚本执行的

要取服务器时间,可以采用asp(那一种脚本语言不重要),获得时间,然后在客户端脚本中赋值给客户端变量
<script>
intHours = <%=today.getHours();%>;
intMinutes = <%=today.getMinutes();%>;
intSeconds =<%= today.getSeconds();%>;
....
</script>
asp
Time()
用JS还是ASP我都无所谓,我就是要一个能在网页上动态同步显示服务器时间的代码.请高手帮贴一个,我实在是编不出呀.
<html><head>
<script language=javascript>
//特别注明:北京时间是格林尼治标准时加八小时,因此我用的起始时间也是从八点起算的
var secondServer = <%=DateDiff("s", "1970-01-01 08:00:00", Now())%>;
var secondClient = parseInt(new Date().getTime()/1000);
var secondSub    = secondServer - secondClient;         //两端时间秒差
function meizzTime(n)
{
   var mei = new Date();
   mei.setTime(mei.getTime() + n*1000);       //得到一个新的时间
   var h = (mei.getHours()   > 9) ? mei.getHours()   : "0" + mei.getHours();
   var m = (mei.getMinutes() > 9) ? mei.getMinutes() : "0" + mei.getMinutes();
   var s = (mei.getSeconds() > 9) ? mei.getSeconds() : "0" + mei.getSeconds();
   document.meizz.clock.value = h +":"+ m +":"+ s;
   setTimeout("meizzTime(secondSub)", 1000);
}
</script>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<meta http-equiv="refresh" content="1000">
<title>取服务器端时间(秒数)</title>
</head>

<body onload="meizzTime(secondSub)">
<form name=meizz><input name=clock size=8></form>
</body></html>
以上代码还是有点问题,当本机时间修改后,网页上显示的时间就不对了.
本机时间修改后,刷新网页就可以了。

不过这种程序都有一个问题,就是用服务器代码(JSP也好ASP也罢)取得服务器时间后,传给客户机上的浏览器这段时间。
看来编一段天衣无缝的代码还真是难呀.总会有点小问题存在,让人心里好不爽.