首页 > 编程 > JavaScript > 正文

javascript实现获取服务器时间

2019-11-20 12:26:58
字体:
来源:转载
供稿:网友

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$/)?_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,那个只是客户端时间

如果是db服务器。
需要连接到数据库,通过sql来取得。比如oracle的就是select sysdate from dual。

示例:

如果js要取得这样的服务器端时间,方法有很多。思路大体差不多。
1.
<script type="text/javascript">
    var date = <%=date(刚才在服务器端取得的时间,内容取得方法上面分析过了)%>
</script>

2.<script type="text/javascript" src=".../ScriptServlet"></script>
将Servlet的返回流中写入一个js文件,使其当中的var nowDate = 服务器端时间

3.ajax,这个就不说了,网上一大堆

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表