怎样用Javascript来获得服务器端的时间.

iworm 2003-08-11 08:44:53
下面这段代码可以用来显示本机的时间,可怎样才能让它显示服务器的时间呢?我试着把<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>
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iworm 2003-08-11
  • 打赏
  • 举报
回复
以上代码还是有点问题,当本机时间修改后,网页上显示的时间就不对了.
meizz 2003-08-11
  • 打赏
  • 举报
回复
<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>
iworm 2003-08-11
  • 打赏
  • 举报
回复
用JS还是ASP我都无所谓,我就是要一个能在网页上动态同步显示服务器时间的代码.请高手帮贴一个,我实在是编不出呀.
zhanghk 2003-08-11
  • 打赏
  • 举报
回复
asp
Time()
shanhe 2003-08-11
  • 打赏
  • 举报
回复
当然了!
window对象实际是页在客户IE中显示时,当前IE的一个view,而你的javascrit runat=server那么实际是在服务器端的IIS asp环境运行,何来window对象。

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

要取服务器时间,可以采用asp(那一种脚本语言不重要),获得时间,然后在客户端脚本中赋值给客户端变量
<script>
intHours = <%=today.getHours();%>;
intMinutes = <%=today.getMinutes();%>;
intSeconds =<%= today.getSeconds();%>;
....
</script>
zhaoweiwei 2003-08-11
  • 打赏
  • 举报
回复
我劝你最好用JSP吧
可以给你jsp如何获得服务器时间的代码:
<%=new java.util.Date().toString()%>获得时间
iworm 2003-08-11
  • 打赏
  • 举报
回复
看来编一段天衣无缝的代码还真是难呀.总会有点小问题存在,让人心里好不爽.
Raser 2003-08-11
  • 打赏
  • 举报
回复
本机时间修改后,刷新网页就可以了。

不过这种程序都有一个问题,就是用服务器代码(JSP也好ASP也罢)取得服务器时间后,传给客户机上的浏览器这段时间。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧