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 相关文章推荐
IE JS编程需注意的内存释放问题
Jun 23 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 Javascript
客户端 使用XML DOM加载json数据的方法
Sep 28 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
JavaScript插件化开发教程 (四)
Jan 27 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
Vue项目中使用Vux的安装过程
May 01 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 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
PHP可变函数学习小结
2015/11/29 PHP
php生成curl命令行的方法
2015/12/14 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python通过post提交数据的方法
2015/05/06 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Django 再谈一谈json序列化
2020/03/16 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
银行介绍信范文
2014/01/10 职场文书
数学检讨书1000字
2014/02/24 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
导游词之昭君岛
2020/01/17 职场文书