Javascript获取服务器时间的函数

一直以来,我们都希望用js获取准确的时间,也就是北京时间,当毕竟js是客户端语言,只能获取到本地的时间,而这个在我们做项目的时候往往是不准确的,我们无法保证用户的电脑时间都是准确的,所以我们一般用服务器端语言来获取服务器的时间。

虽然,服务器端语言获取时间很轻松,但是对于前端开发人员来说没有任何作用,他们需要用JS获取准确的时间,下面就介绍一种使用JS获取服务器时间的方法:

在后台程序把页面元素传递给浏览器的时候会有一个Response Header,里面有一个字段Date,标记的就是服务器响应的时间,而我们只要想办法把这个时间拿到就行了。

 var xhr = new XMLHttpRequest(); 
 if( !xhr ){ 
  xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
 } 
 xhr.open("HEAD",location.href,true); 
 xhr.onreadystatechange=function(){ 
 if( xhr.readyState == 4 && xhr.status == 200 ){
  var str = xhr.getResponseHeader("Date"); //获取Response Header里面的Date
                var date = new Date(str).getTime(); //把Date转换成时间对象
  alert(date); //输出时间戳
 } 

xhr.send(null);

如果你使用JQ,可以这样

$.ajax({
  url: '',
 type: 'get',
 success: function (data, status, xhr) {            
   var str = xhr.getResponseHeader('Date');  //获取Response Header里面的Date
                 var date = new Date(str).getTime(); //把Date转换成时间对象
   alert(date);  //输出时间戳
   }
});

这样的方法获取的服务器时间还是比较靠谱的。

这个其实就是ajax获得了时间,还有一种办法加载页面时由php生成服务器时间,然后再由js进行转换即可。

时间: 2024-09-20 05:51:43

Javascript获取服务器时间的函数的相关文章

JavaScript获取服务器时间的方法详解_javascript技巧

本文实例讲述了JavaScript获取服务器时间的方法.分享给大家供大家参考,具体如下: Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了.业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的响应头里面的时间戳得到当前服务器时间! 原理就是这

javascript实现获取服务器时间

  JS是在客户端运行的脚本,而不是运行在服务器上,通常来说,通过JS获取时间的时候获取到的时间是访客本地电脑上的时间,为了让网页上的时间不因访客电脑差异而不同,我们有必要直接JS获取服务器时间. 下面是完整的js获取服务器时间代码,是使用javascript获取服务器时间的完整实例,js动态刷新服务器时间. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

javascript实现获取服务器时间_javascript技巧

JS是在客户端运行的脚本,而不是运行在服务器上,通常来说,通过JS获取时间的时候获取到的时间是访客本地电脑上的时间,为了让网页上的时间不因访客电脑差异而不同,我们有必要直接JS获取服务器时间. 下面是完整的js获取服务器时间代码,是使用javascript获取服务器时间的完整实例,js动态刷新服务器时间. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content=

JavaScript怎么获取服务器时间 JavaScript服务器时间获取方法

Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了.业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的响应头里面的时间戳得到当前服务器时间! 原理就是这么简单:通过ajax向服务器发送请求,当服务器收到请求后即可读取响应头的时间戳了,不管请求

JavaScript获取服务器端时间的方法_javascript技巧

用js做时间校正,获取本机时间,是存在bug的. 使用js也可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了.以下: 1.依赖jQuery 代码: function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); } 以上函数返回的就是一个Date对象,注意在使用ajax时必须同步,要不然无法返回时间日期. 无需填写

利用js获取服务器时间的两个简单方法_时间日期

有时用js来获取服务器时间.一般会用System.DateTime 方法如下: 复制代码 代码如下: <script language="javascript"> var a = new Date() a = <%=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")%>; Response.Write(a) </script> 其实还有一个方法:利用javascript的&quo

jsp页面获取服务器时间的简单调用示例

 这篇文章主要介绍了jsp页面如何获取服务器时间及简单的调用示例,需要的朋友可以参考下       Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day= c.get(Calendar.DAY); 这三行加在<% %>里面 调用时用<%= year %><%= month%><%= day%&g

lotus notes客户端如何获取服务器时间

问题描述 本人想在notes客户端准确地获取domino服务器时间,在正常情况下通过以下方法可以实现:DimsessionAsNewnotessessionDimdbAsnotesdatabaseDimdocTmpAsNotesDocumentDimGetServerDateasStringDimdateTimeAsNewNotesDateTime("")Setdb=session.CurrentDatabaseSetdocTmp=db.CreateDocumentSetdateTim

Android获取服务器时间?

问题描述 Android获取服务器时间? 解决方案 只有离线的时候拿到的是服务器时间在线的状态情况下,是用的本地时间