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 相关文章推荐
取得一定长度的内容,处理中文
Dec 20 Javascript
javascript 禁止复制网页
Jun 11 Javascript
jQuery 白痴级入门教程
Nov 11 Javascript
javascript工具库代码
Mar 29 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
基于javascript 显式转换与隐式转换(详解)
Dec 15 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
Mar 06 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 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获取金书网的书名的实现代码
2010/06/11 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
JavaScript中的undefined学习总结
2013/11/30 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
Python与Redis的连接教程
2015/04/22 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
Python如何实现定时器功能
2020/05/28 Python
纽约海:Sea New York
2018/11/04 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
大专会计自我鉴定
2014/02/06 职场文书
建设工地安全标语
2014/06/07 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
留学推荐信中文范文
2015/03/26 职场文书
土建施工员岗位职责
2015/04/11 职场文书
中秋节主题班会
2015/08/14 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
redis内存空间效率问题的深入探究
2021/05/17 Redis