找回密码
 新建账号

[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
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?新建账号

×
hello_08 发表于 2016/2/25 18:18 | 显示全部楼层
不错,谢谢了
51ntimer 发表于 2016/4/13 18:25 | 显示全部楼层
我要试试。
萌萌的提莫酱 发表于 2016/5/9 15:44 | 显示全部楼层
正在找这个原生js  谢谢
whitelove 发表于 2017/6/22 08:11 | 显示全部楼层
thx 我要试试。

手机版|轻松E站

GMT+8, 2024/11/21 20:19

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