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入门之基本函数详解
Oct 21 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
Node.js静态文件服务器改进版
Jan 10 Javascript
html+js实现简单的计算器代码(加减乘除)
Jul 12 Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
layui之数据表格--与后台交互获取数据的方法
Sep 29 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
基于Vue CSR的微前端实现方案实践
May 27 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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
用jscript实现新建word文档
2007/06/15 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
Python内置模块logging用法实例分析
2018/02/12 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
python操作cfg配置文件方式
2019/12/22 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
日语系毕业求职信
2014/07/27 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js