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 选择器部分整理
Oct 28 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
javascript如何写热点图
Dec 08 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
利用Vue构造器创建Form组件的通用解决方法
Dec 03 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
Javascript 对象(object)合并操作实例分析
Jul 30 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
基于php-fpm的配置详解
2013/06/03 PHP
php限制ip地址范围的方法
2015/03/31 PHP
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
详解python进行mp3格式判断
2016/12/23 Python
python实现聊天小程序
2018/03/13 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
C#中的验证控件有几种
2014/03/08 面试题
JAVA程序员自荐书
2014/01/30 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
勤俭节约主题班会
2015/08/13 职场文书
详解Vue的options
2021/05/15 Vue.js
Github 使用python对copilot做些简单使用测试
2022/04/14 Python