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 相关文章推荐
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
从零开始学习jQuery (二) 万能的选择器
Oct 01 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
Oct 24 Javascript
获得Javascript对象属性个数的示例代码
Nov 21 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
Jul 15 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
详解webpack多页面配置记录
Jan 22 Javascript
Node.js npm命令运行node.js脚本的方法
Oct 10 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
深入理解vue中的$set
2017/06/01 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
人机交互程序 python实现人机对话
2017/11/14 Python
python2 与python3的print区别小结
2018/01/16 Python
python实现画圆功能
2018/01/25 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python 操作 MySQL数据库
2020/09/18 Python
python中spy++的使用超详细教程
2021/01/29 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
怎样创建、运行java程序
2014/08/01 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
领导接待方案
2014/03/13 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书