1. 程式人生 > >js實時獲取伺服器時間

js實時獲取伺服器時間

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX獲取伺服器時間</title>
<script type="text/javascript">
    /*
     * ajax 函式,處理 ajax 請求
     * @param function callback 回撥函式
     * @因為要和伺服器互動,所以必須在伺服器環境執行,不能在硬碟上直接開啟
    */
    function ajax(callback){
        if(typeof callback!='function') return;
        var ajaxObject;
        try{
            ajaxObject=new XMLHttpRequest();
        }catch(e){
            try{
                ajaxObject=new ActiveXObject('Microsoft.XMLHTTP');
            }catch(e){
            }
        }
        if(!ajaxObject) return;
        if(ajaxObject.overrideMimeType){
            ajaxObject.overrideMimeType('text/html');
        }
        //location.href可以換成其他url,但必須是同一個站點的連結,並且檔案存在
        ajaxObject.open('get',location.href);
        ajaxObject.send(null);
        ajaxObject.onreadystatechange=function(){
            if(ajaxObject.readyState==4){
                if(ajaxObject.status==200){
                    callback(ajaxObject);
                }
            }
        };
    }
    /*
     * 獲取時間並動態重新整理
    */
    function getTime(){
        ajax(
            function(ao){
                //只需要AJAX一次,將伺服器時間獲取後以毫米為單位儲存到一個變數中
                _timestamp=Date.parse(ao.getResponseHeader('Date'));
                _timestamp=_timestamp.toString().match(/^\d$/)?_timestamp:new Date().getTime();
                //設定定時器每過一秒動態重新整理一次時間
                setInterval(
                    function(){
                        //這裡可以自定義時間顯示格式
                        document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString();
                        _timestamp+=1000;
                    },
                    1000
                );
            }
        );
    }
    window.onload=getTime;
</script>
</head>
<body>
    <div id="_timer">正在獲取伺服器時間……</div>
</body>
</html>