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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
优化innerHTML操作(提高代码执行效率)
Aug 20 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
Apr 26 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
如何使用Javascript中的this关键字
May 28 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
javascript常用的设计模式
2017/02/09 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
python中requests小技巧
2017/05/10 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
现场施工员岗位职责
2014/03/10 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
如何理解及使用Python闭包
2021/06/01 Python
OpenCV 图像梯度的实现方法
2021/07/25 Python