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 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
js对象的比较
Feb 26 Javascript
jquery键盘事件使用介绍
Nov 01 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
May 08 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
Aug 05 Javascript
JS对select控件option选项的增删改查示例代码
Oct 21 Javascript
window.onerror()的用法与实例分析
Jan 27 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
jQuery中DOM节点的删除方法总结(超全面)
Jan 22 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
微信小程序实现上传多个文件 超过10个
Mar 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
php xfocus防注入资料
2008/04/27 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
python编写爬虫小程序
2015/05/14 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python中如何添加自定义模块
2020/06/09 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
公关关系专员的自我评价分享
2013/11/20 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL