javascript实现获取服务器时间


Posted in Javascript onMay 19, 2015

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,这个就不说了,网上一大堆

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

Javascript 相关文章推荐
关于js datetime的那点事
Nov 15 Javascript
JS模拟自动点击的简单实例
Aug 08 Javascript
查找iframe里元素的方法可传参
Sep 11 Javascript
JQuery遍历json数组的3种方法
Nov 08 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
jQuery动态创建元素以及追加节点的实现方法
Oct 20 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 #Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
May 19 #Javascript
7个有用的jQuery代码片段分享
May 19 #Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
May 19 #Javascript
javascript检测两个数组是否相似
May 19 #Javascript
10条建议帮助你创建更好的jQuery插件
May 18 #Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 #Javascript
You might like
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP实现添加购物车功能
2017/03/06 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
python访问系统环境变量的方法
2015/04/29 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
pycharm实现猜数游戏
2020/12/07 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
医学生自荐信
2013/12/03 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
研讨会通知
2015/04/27 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
Python Parser的用法
2021/05/12 Python
MySQL库表名大小写的选择
2021/06/05 MySQL