[JS] JS获取服务器时间

php 发表于 2012/3/12 22:11 | 显示全部楼层 |阅读模式
JS是在客户端运行的脚本,而不是运行在服务器上,通常来说,通过JS获取时间的时候获取到的时间是访客本地电脑上的时间,为了让网页上的时间不因访客电脑差异而不同,我们有必要直接JS获取服务器时间。
下面是完整的js获取服务器时间代码,是使用javascript获取服务器时间的完整实例,js动态刷新服务器时间。
为了防止复制乱码,请下载附件,不要直接复制以下代码测试。
  1. <!-- www.51-n.com -->
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>AJAX获取服务器时间</title>
  7. <script type="text/javascript">
  8.         /*
  9.          * @author 吴先成 qQ229256237 www.51-n.com
  10.          * ajax 函数,处理 ajax 请求
  11.          * @param function callback 回调函数
  12.          * @因为要和服务器交互,所以必须在服务器环境运行,不能在硬盘上直接打开
  13.         */
  14.         function ajax(callback){
  15.                 if(typeof callback!='function') return;
  16.                 var ajaxObject;
  17.                 try{
  18.                         ajaxObject=new XMLHttpRequest();
  19.                 }catch(e){
  20.                         try{
  21.                                 ajaxObject=new ActiveXObject('Microsoft.XMLHTTP');
  22.                         }catch(e){
  23.                         }
  24.                 }
  25.                 if(!ajaxObject) return;
  26.                 if(ajaxObject.overrideMimeType){
  27.                         ajaxObject.overrideMimeType('text/html');
  28.                 }
  29.                 //location.href可以换成其他url,但必须是同一个站点的链接,并且文件存在
  30.                 ajaxObject.open('get',location.href);
  31.                 ajaxObject.send(null);
  32.                 ajaxObject.onreadystatechange=function(){
  33.                         if(ajaxObject.readyState==4){
  34.                                 if(ajaxObject.status==200){
  35.                                         callback(ajaxObject);
  36.                                 }
  37.                         }
  38.                 };
  39.         }
  40.         /*
  41.          * 获取时间并动态刷新
  42.         */
  43.         function getTime(){
  44.                 ajax(
  45.                         function(ao){
  46.                                 //只需要AJAX一次,将服务器时间获取后以毫米为单位保存到一个变量中
  47.                                 _timestamp=Date.parse(ao.getResponseHeader('Date'));
  48.                                 _timestamp=_timestamp.toString().match(/^\d$/)?_timestamp:new Date().getTime();
  49.                                 //设置定时器每过一秒动态刷新一次时间
  50.                                 setInterval(
  51.                                         function(){
  52.                                                 //这里可以自定义时间显示格式
  53.                                                 document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString();
  54.                                                 _timestamp+=1000;
  55.                                         },
  56.                                         1000
  57.                                 );
  58.                         }
  59.                 );
  60.         }
  61.         window.onload=getTime;
  62. </script>
  63. </head>
  64. <body>
  65.         <div id="_timer"><a href="http://www.51-n.com/">正在获取服务器时间……</a></div>
  66. </body>
  67. </html>
复制代码
注意事项:
游客,如果您要查看本帖隐藏内容请回复

最终显示效果
  1. 2014年4月5日 下午4:03:14
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
jw20082009 发表于 2013/11/29 10:45 | 显示全部楼层
凤凰刷机软件,刷机软件中的战斗机软件
回复

使用道具 举报

ycmaning 发表于 2013/12/15 02:24 | 显示全部楼层
埃里克森点击返回拉萨肯德基返回拉萨的空间发挥啦圣诞节快好啦士大夫哈萨克多久发货
回复

使用道具 举报

dmp92929 发表于 2014/6/10 13:29 | 显示全部楼层
timeer
回复

使用道具 举报

LQC19921106 发表于 2015/4/1 17:08 | 显示全部楼层
我看看
回复

使用道具 举报

hello_08 发表于 2016/2/25 18:18 | 显示全部楼层
不错,谢谢了
回复

使用道具 举报

289228748 发表于 2016/2/26 02:13 | 显示全部楼层
ewrwerwerwer
回复

使用道具 举报

51ntimer 发表于 2016/4/13 18:25 | 显示全部楼层
我要试试。
回复

使用道具 举报

萌萌的提莫酱 发表于 2016/5/9 15:44 | 显示全部楼层
正在找这个原生js  谢谢
回复

使用道具 举报

skxing 发表于 2016/6/18 16:07 | 显示全部楼层
顶顶顶顶顶顶顶
回复

使用道具 举报

手机版|轻松E站

E-mail: OHCC@163.COM

快速回复 返回顶部 返回列表