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 相关文章推荐
快速保存网页中所有图片的方法
Jun 23 Javascript
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
Node.js中sequelize时区的配置方法
Dec 10 Javascript
javaScript中的空值和假值
Dec 18 Javascript
webpack项目调试以及独立打包配置文件的方法
Feb 28 Javascript
Layui 设置select下拉框自动选中某项的方法
Aug 14 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
js实现盒子滚动动画效果
Aug 09 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列出一个目录下的所有文件的代码
2012/10/09 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
php文件下载处理方法分析
2015/04/22 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
php post换行的方法
2020/02/03 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python更新列表的方法
2015/07/28 Python
Python实现购物车功能的方法分析
2017/11/10 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
高级技校毕业生自荐信
2013/11/18 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
自我管理的活动方案
2014/08/25 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers