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 相关文章推荐
jQuery 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
基于JQuery.timer插件实现一个计时器
Apr 25 Javascript
Javascript 函数parseInt()转换时出现bug问题
May 20 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
深入剖析Node.js cluster模块
May 23 Javascript
微信小程序实现弹出层效果
May 26 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
JavaScript Window窗口对象属性和使用方法
Jan 19 Javascript
详解vue路由
Aug 05 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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
长波有什么东西
2021/03/01 无线电
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
python处理二进制数据的方法
2015/06/03 Python
Python中static相关知识小结
2018/01/02 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python列表list排列组合操作示例
2018/12/18 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
机械工程及自动化专业求职信
2014/09/03 职场文书
超市创业计划书
2014/09/15 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
自书遗嘱范文
2015/08/07 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
详解python字符串驻留技术
2021/05/21 Python
JS函数式编程实现XDM一
2022/06/16 Javascript