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 相关文章推荐
Prototype使用指南之string.js
Jan 10 Javascript
Javascript 面向对象 命名空间
May 13 Javascript
在jQuery ajax中按钮button和submit的区别分析
Oct 07 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
javascript使用onclick事件改变选中行的颜色
Dec 30 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
Jul 24 Javascript
JS运动改变单物体透明度的方法分析
Jan 23 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
详解vue引入子组件方法
Feb 12 Javascript
JS猜数字游戏实例讲解
Jun 30 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
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
JS中的BOM应用
2018/02/02 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
python suds访问webservice服务实现
2020/06/26 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
基于Python实现粒子滤波效果
2020/12/01 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
自动化毕业生专业自荐书范文
2014/02/04 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
作息时间调整通知
2015/04/22 职场文书