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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
extjs之去除s.gif的影响
Dec 25 Javascript
『jQuery』取指定url格式及分割函数应用
Apr 22 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 Javascript
jQuery stop()用法实例详解
Jul 28 Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
vue中添加与删除关键字搜索功能
Oct 12 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
vue项目中在可编辑div光标位置插入内容的实现代码
Jan 07 Javascript
Vue+Flask实现图片传输功能
Apr 01 Vue.js
微信小程序链接传参并跳转新页面
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异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
JavaScript修改css样式style
2008/04/15 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
python实现上传下载文件功能
2020/11/19 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
深入了解Django中间件及其方法
2019/07/26 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
Pytorch之contiguous的用法
2019/12/31 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
电子信息科学专业自荐信
2014/01/30 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
借条如何写
2015/05/26 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书