用Ajax读取server端时间,
如果要获取准确时间估计要调用web service了,
或者直接引用其他站点的现成脚本。

解决方案 »

  1.   


    解决用javascript获取服务器时间的过程--使用xmlhttp获取服务器时间
    昨天开发时候遇到一个问题:页面上使用一个checkbox,点击checkbox的时候需要获取到当前的时间,由于不能刷新页面,问题来了:       如何使用javascript获取服务器时间???google了,,甚至也摆渡了,呵呵,老是见到梅老大的那个获取时间的出现,本人愚钝,无法领悟其中的奥妙,也就是问题没有解决,好像问题也很严重! 
         顺便附上梅老大的代码:
    <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();
             //得到一个新的时间var y = mei.getYear();
       var m = mei.getMonth();
       var d = (mei.getDay()   >
    9) ? mei.getDay()   : "0"
    + mei.getDay();
       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.getElementById("clock").value = y+"-"+m+"-"+d+"
    "+ 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=80></form>
    </body></html>
    1、做一个动态显示时间的页面,2.aspx,代码很高深,但是也太。他nnd的简单了
    <%=now()%>
    2、用另外一个页面1.htm获取2.aspx页面中的内容
    <html>
    <script language="JavaScript">...  
            //获取当前时间作为一个不相同的随机数function getNowTime()
            ...{
                var d, s ;
                d =
    new Date();
                s = d.getFullYear();
                s +=
    "-"
    +d.getDate();
                s +=
    "-"+d.getHours();
                s +=
    "-"+d.getMinutes();
                s +=
    "-"+d.getSeconds();
                s +=
    "-"+d.getMilliseconds();
                return s;
            }
            //根据2.aspx中返回的服务器时间,2.aspx中要传入一个不相同的随机数//有兴趣的可以试下不添加随机数作为参数,估计很郁闷^.^//原理:跟ie中保留临时文件有关系,具体就不知道如何描述了,呵呵function getServerTime() 
            ...{ 
            var objXMLHTTP=new ActiveXObject("MICROSOFT.XMLHTTP"); 
            objXMLHTTP.open("GET","2.aspx?nowTime="+getNowTime(),false); 
            objXMLHTTP.send(""); 
            var strReturn=objXMLHTTP.ResponseText; 
            document.getElementById("Text1").value= strReturn;  
            } 
    </script>
    <body>
        <span id="online_num"><INPUT id="Checkbox1" type="checkbox" name="Checkbox1" onclick=getServerTime();>
        <INPUT id="Text1" type="text" name="Text1"></span>
    </body>
    </html>
    嘿嘿,废话一大堆,原来就这么简单,欢迎大家拍砖!!!
    本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=226400http://bbs.zdnet.com.cn/thread-226400-1-1.html