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之ESC(第二类混淆)
May 06 Javascript
一实用的实现table排序的Javascript类库
Sep 12 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
Dec 19 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
Nov 25 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 Javascript
JS数组Reduce方法功能与用法实例详解
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
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
php bootstrap实现简单登录
2016/03/08 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
大学生会计职业生涯规划范文
2014/02/28 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
opencv检测动态物体的实现
2021/07/21 Python
MySQL数据库 安全管理
2022/05/06 MySQL