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 相关文章推荐
Javascript 学习书 推荐
Jun 13 Javascript
Jquery绑定事件(bind和live的区别介绍)
Aug 23 Javascript
js字符串转成JSON
Nov 07 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
Dec 26 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
微信小程序 image组件遇到的问题
May 28 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 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 之入门篇
2006/12/04 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
js confirm()方法的使用方法实例
2013/07/13 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python素数检测实例分析
2015/06/15 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python 实时遍历日志文件
2016/04/12 Python
python字符串,数值计算
2016/10/05 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python中time、datetime模块的使用
2020/12/14 Python
思想汇报格式
2014/01/05 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫