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 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
利用进制转换压缩数字函数分享
Jan 02 Javascript
Javascript 按位左移运算符使用介绍(
Feb 04 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
jquery操作select方法汇总
Feb 05 Javascript
node+experss实现爬取电影天堂爬虫
Nov 20 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
javascript实现拼图游戏
Jan 29 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
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
javascript版2048小游戏
2015/03/18 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
Python 元类实例解析
2018/04/04 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python画微信表情符的实例代码
2019/10/09 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
新闻发布会策划方案
2014/06/12 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers