现在的B/S项目里面有一个要求:在浏览器里面实现显示服务器时间的时钟。如果是显示客户端的时钟倒是很简单了,但是显示服务器段时钟就……。肯定是不能每秒刷新页面了,首先的想法就是取得客户端和服务器端的时间差,然后在客户端用Js脚本显示,这显示的自然就是客户端当前时间加上这个时间差了。
以前一直用的是JS,好像没有什么太容易的办法简单的实现诸如" 计算时间差", "加上一个时间间隔"这样的任务。好在 JS 没有但是 VBS 有啊, DataDiff 和 DateAdd 两个函数可以很轻松的完成上述任务。下面就是实现的 HTML 代码。
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>Server Time</title>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="vbscript">
Dim secondDiff
Sub UpdateTime()
clientTime.innerText = Now()
serverTime.innerText = DateAdd("s", secondDiff, Now())
End Sub
Sub SetTime(serverDateTime)
' 客户端时间
clientDateTime = Now()
' 秒差
secondDiff = DateDiff("s", clientDateTime, serverDateTime)
' 每秒更新
oInterval = setInterval("UpdateTime()", 1000)
End Sub
</script>
</head>
<body>
<script>SetTime("2007-10-20 12:30:33")</script>
客户端时间:<label id="clientTime"></label><br>
服务器时间:<label id="serverTime"></label>
</body>
</html>
<html>
<head>
<title>Server Time</title>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="vbscript">
Dim secondDiff
Sub UpdateTime()
clientTime.innerText = Now()
serverTime.innerText = DateAdd("s", secondDiff, Now())
End Sub
Sub SetTime(serverDateTime)
' 客户端时间
clientDateTime = Now()
' 秒差
secondDiff = DateDiff("s", clientDateTime, serverDateTime)
' 每秒更新
oInterval = setInterval("UpdateTime()", 1000)
End Sub
</script>
</head>
<body>
<script>SetTime("2007-10-20 12:30:33")</script>
客户端时间:<label id="clientTime"></label><br>
服务器时间:<label id="serverTime"></label>
</body>
</html>