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代码
Aug 13 Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
Sep 29 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
Sep 28 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
vue中watch的用法汇总
Dec 28 Vue.js
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/09 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
angular2实现统一的http请求头方法
2018/08/13 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
机关道德讲堂实施方案
2014/03/15 职场文书
建筑学专业自荐书
2014/07/09 职场文书
天猫活动策划方案
2014/08/21 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书