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 相关文章推荐
Jquery 获得服务器控件值的方法小结
May 11 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
js实现的折叠导航示例
Nov 29 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
Jun 16 Javascript
微信小程序前端源码逻辑和工作流
Sep 25 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
js css3实现图片拖拽效果
Mar 04 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 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&mysql(五)
2006/10/09 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
舞蹈教育学专业求职信
2014/06/29 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
村官2015年度工作总结
2015/10/14 职场文书
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers