<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>

解决方案 »

  1.   

    <P id="ppp"><%=date&time%></P> 'asp写法
      

  2.   

    这样可否?不过觉得完全没有必要<P id="ppp"></P>
    <SCRIPT LANGUAGE=vbscript >window.setInterval "aaa","1000","vbscript"
    sub aaa()
    ppp.innerText = <%=now()%> & " "&weekdayname( weekday(now))
    end sub
    </SCRIPT>
      

  3.   

    to:meizz(梅花雪) 
    我已经在别的帖子里看到你的代码,但好像还是没有实现我的要求
    我最好是能得到UTC时间,因为我要显示三个地方的时间,如果能得到UTC时间就能根据时差算出美国和德国那边的时间,如果能得出服务器端的时间并能和时差进行加减计算(所得的时间需要有年、月、日)
    谢谢,各位大虾帮忙啊
      

  4.   

    to:zerolone(Zerolone) 
    这样也不行,
    <P id="ppp"></P>
    <SCRIPT LANGUAGE=vbscript >window.setInterval "aaa","1000","vbscript"
    sub aaa()
    ppp.innerText = now() & " "&weekdayname( weekday(now))
    end sub
    </SCRIPT>
    这段代码我也是从网上查的,但是里面的now()取得是本机的时间,我希望得到的是服务器端的时间
    谢谢
      

  5.   

    你用asp啊,要是jsp的话就好办了
      

  6.   

    to:cxz7531(大花猫)
    只要能解决,都可以试试
      

  7.   

    javascript 返回的是客户端的时间
    ASP 返回的是服务端的时间
    用个框架嵌入ASP页用于不断返回时间.
    再传到父页面的javascript脚本.只给个思路,自己试试...
      

  8.   

    <script language="javascript">
    var now = new Date();
    now.setYear(<%=Year(Date())%>);
    now.setMonth(<%=Month(Date())%>);
    now.setDate(<%=Day(Date())%>);
    now.setHours(<%=Hour(Time())%>);
    now.setMinutes(<%=Minute(Time())%>);
    now.setSeconds(<%=Second(Time())%>); alert(now.toUTCString())
    </script>now.toUTCString() 得到的就是将服务器时间转换得到的 UTC 时间。还有 now.getDate  now.getYear 等等,你要用什么自己用。结帐吧,我等着接分呢 ^_^
      

  9.   

    to:Hozaka
    我试了试,弄成这样,但是时间没有动态的更新,如何解决?
    <span id=tick2>
    </span>
    <script>
    <!--
    function show2(){
    var now = new Date();
    now.setYear(<%=Year(Date())%>);
    now.setMonth(<%=Month(Date())%>);
    now.setDate(<%=Day(Date())%>);
    now.setHours(<%=Hour(Time())%>);
    now.setMinutes(<%=Minute(Time())%>);
    now.setSeconds(<%=Second(Time())%>);
        
    var year=now.getYear()
    var month=now.getMonth()
    var date=now.getDate()
    var hours=now.getHours()
    var minutes=now.getMinutes()
    var seconds=now.getSeconds()
    var ctime=year+" "+month+"-"+date+" "+hours+":"+minutes+":"+secondstick2.innerHTML="<b style='font-size:22;color:blue;'>"+ctime+"</b>"setTimeout("show2()",1000)
    }
    window.onload=show2//--></script>
      

  10.   

    这里有个问题,客户端下载完整个页面之后,就已经跟服务端没有联系了,所以没有办法保持与服务端的时间完全同步。我说的是不能完全同步,意思是有取巧的办法:在用以上的办法得到服务端时间以后,以这个时间作为起点,进行计时,每隔1秒+1,并且刷新显示,就可以近似得得到服务端的时间(并不一致)。你的代码错误在于,得到时间以后并没有在客户端开始计时。稍微修改一下就可以了。时间的累加用下面的代码:
    now.setSeconds(now.getSeconds() + 1)完整代码如下:<span id=tick2>
    </span>
    <script>
    <!--
    var now = new Date();
    function getTime(){
    now.setYear(<%=Year(Date())%>);
    now.setMonth(<%=Month(Date())%>);
    now.setDate(<%=Day(Date())%>);
    now.setHours(<%=Hour(Time())%>);
    now.setMinutes(<%=Minute(Time())%>);
    now.setSeconds(<%=Second(Time())%>);
    }function show2 {
    tick2.innerHTML="<b style='font-size:22;color:blue;'>"+now.toLocateString()+"</b>";
    now.setSeconds(now.getSeconds + 1);
    }window.onload=show2()//--></script>P.S. 代码我没仔细检查,可能有错误,麻烦楼主自己修改一下了 ^_^
      

  11.   

    上面打错了tick2.innerHTML="<b style='font-size:22;color:blue;'>"+now.toLocaleString()+"</b>";now.toLocaleString() 我打成 now.toLocateString() 了,呵呵
      

  12.   

    好像还不行啊,我不懂javascript,麻烦楼上的帮我调好了,完了就结分
      

  13.   

    晕,原来不是同一个人在问啊…………guest123456 你用下面这段代码<span id="UTCTime"></span>
    <script language="javascript">var now = new Date();
    getUTCTime();
    setInterval('refreshUTCTime()', 1000);function getUTCTime() {
        now.setYear(<%=Year(Date())%>);
        now.setMonth(<%=Month(Date())%>);
        now.setDate(<%=Day(Date())%>);
        now.setHours(<%=Hour(Time())%>);
        now.setMinutes(<%=Minute(Time())%>);
        now.setSeconds(<%=Second(Time())%>);
    }function refreshUTCTime() {
        now.setSeconds(now.getSeconds + 1);
        var obj = document.getElementById('UTCTime');
        obj.innerText = now.toUTCString;
    }
    </script>
      

  14.   

    To guest123456:
    刚刚的代码确实有问题,我发现了,哈哈,不好意思,下面的代码我修改过了,在我这里可以运行,你试试看。<span id="UTCTime"></span>
    <script language="javascript">var now = new Date();
    getUTCTime();
    setInterval('refreshUTCTime()', 1000);function getUTCTime() {
        now.setYear(<%=Year(Date())%>);
        now.setMonth(<%=Month(Date())%>);
        now.setDate(<%=Day(Date())%>);
        now.setHours(<%=Hour(Time())%>);
        now.setMinutes(<%=Minute(Time())%>);
        now.setSeconds(<%=Second(Time())%>);
    }function refreshUTCTime() {
    var obj = document.getElementById('UTCTime');
    obj.innerText = now.toUTCString();
    now.setSeconds(now.getSeconds() + 1);
    }
    </script>