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


Posted in Javascript onNovember 29, 2016

用js做时间校正,获取本机时间,是存在bug的。

使用js也可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了。以下:

1、依赖jQuery

代码:

function getServerDate(){
return new Date($.ajax({async: false}).getResponseHeader("Date"));
}

以上函数返回的就是一个Date对象,注意在使用ajax时必须同步,要不然无法返回时间日期。

无需填写请求链接;

如果服务器时间和本地时间有时差,需要做校正。

2、原生

代码:

function getServerDate(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new window.XMLHttpRequest();
}else{ // ie
xhr = new ActiveObject("Microsoft")
}
xhr.open("GET","/",false)//false不可变
xhr.send(null);
var date = xhr.getResponseHeader("Date");
return new Date(date);
}

同样返回的是一个Date对象,xhr.open()必须使用同步;

无需填写请求链接;open,send,和getResponseHeader 必须按序编写。

如需使用异步请求,可监听onreadystatechange状态来做不同的操作。

代码如下:

function getServerDate(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new window.XMLHttpRequest();
}else{ // ie
xhr = new ActiveObject("Microsoft")
}
xhr.open("GET","/",true);
xhr.send(null);
xhr.onreadystatechange=function(){
var time,date;
if(xhr.readyState == 2){
time = xhr.getResponseHeader("Date");
date = new Date(time);
console.log(date);
}
}
}

使用异步不是很方便返回时间。

这里的readyState有四种状态,方便做不同处理:

0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成,且响应已就绪

失败状态,status的值:

200: "OK"

404: 未找到页面

以上所述是小编给大家介绍的JavaScript获取服务器端时间的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js模拟select下拉菜单控件的代码
May 08 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
js图片向右一张张滚动效果实例代码
Nov 23 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
jQuery实现带延迟效果的滑动菜单代码
Sep 02 Javascript
客户端验证用户名和密码的方法详解
Jun 16 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
Dec 08 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
webpack+vue-cli项目中引入外部非模块格式js的方法
Sep 28 Javascript
js面向对象方式实现拖拽效果
Mar 03 Javascript
微信小程序链接传参并跳转新页面
Nov 29 #Javascript
JavaScript中Array对象用法实例总结
Nov 29 #Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 #Javascript
JavaScript构建自己的对象示例
Nov 29 #Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 #Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 #Javascript
JavaScript中return用法示例
Nov 29 #Javascript
You might like
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
javascript 跳转代码集合
2009/12/03 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
详解Python中dict与set的使用
2015/08/10 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
教师自荐信
2013/12/10 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
学校周年庆活动方案
2014/08/22 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
邀请函模板
2015/02/02 职场文书
产品质量保证书范本
2015/02/27 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript