首頁 >web前端 >js教程 >javascript實作取得伺服器時間_javascript技巧

javascript實作取得伺服器時間_javascript技巧

WBOY
WBOY原創
2016-05-16 15:58:231295瀏覽

JS是在客戶端運行的腳本,而不是運行在伺服器上,通常來說,透過JS獲取時間的時候獲取到的時間是訪客本地電腦上的時間,為了讓網頁上的時間不因訪客電腦差異而不同,我們有必要直接JS取得伺服器時間。

以下是完整的js取得伺服器時間碼,是使用javascript取得伺服器時間的完整實例,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$/)&#63;_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>

思路分析:

伺服器端時間這個概念很模糊。因為伺服器端畢竟可能不是由一台機器組成的。最簡單的情況,也分web伺服器和db伺服器。你說的究竟是哪一種

如果是web伺服器。
那麼直接在java或.net那頭new Date()就ok了
不要在網頁中的<script>裡面new Date,那個只是客戶端時間</script>

如果是db伺服器。
需要連接到資料庫,透過sql來取得。例如oracle的就是select sysdate from dual。

範例:

如果js要取得這樣的伺服器端時間,方法有很多。思路大體差不多。
1.

2.
將Servlet的返回流中寫入一個js文件,使其當中的var nowDate = 伺服器端時間

3.ajax,這個就不說了,網路上一大堆

以上所述就是本文的全部內容了,希望大家能夠喜歡。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn