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 效率组装字符串 StringBuffer
Dec 23 Javascript
基于JQuery制作的产品广告效果
Dec 08 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
Vue.directive使用注意(小结)
Aug 31 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
Jun 24 Javascript
如何通过javaScript去除字符串两端的空白字符
Feb 06 Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python中的id()函数指的什么
2017/10/17 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
求职简历自我评价范例
2014/03/12 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
商场消防安全责任书
2014/07/29 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
奔腾年代观后感
2015/06/09 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers