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 相关文章推荐
预加载css或javascript的js代码
Apr 23 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
Javascript中的默认参数详解
Oct 22 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
Vue响应式原理深入解析及注意事项
Dec 11 Javascript
webpack将js打包后的map文件详解
Feb 22 Javascript
详解mpvue中小程序自定义导航组件开发指南
Feb 11 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
Aug 20 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 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
python交互式图形编程实例(一)
2017/11/17 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
用python计算文件的MD5值
2020/12/23 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
校友会欢迎辞
2014/01/13 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
清明节寄语2015
2015/03/23 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电