
JavaScript获取服务器时间的方法详解

本文实例讲述了JavaScript获取服务器时间的方法。分享给大家供大家参考,具体如下:
Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了。业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的响应头里面的时间戳得到当前服务器时间!
原理就是这么简单:通过ajax向服务器发送请求,当服务器收到请求后即可读取响应头的时间戳了,不管请求成功或失败,都可以拿到时间戳。怎么判断服务器收到请求了呢?当ajax请求发送之后,XMLHttpRequest有5中状态变化:
XMLHttpRequest.readyState值 | 表示的意思 |
0 | 未初始化,已经创建一个XMLHttpRequest对象,但是还没有初始化 |
1 | 未发送,代码已经调用了xmlhttprequest open()方法并且xmlhttprequest已经准备好把一个请求发送到服务器 |
2 | 已发送,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应,可以读取响应头信息了 |
3 | 正在接收,已经接收到http响应头部信息,但是消息体部分还没有完全接收完毕 |
4 | 已加载,响应已经被完全接收 |
通过监听XMLHttpRequest的readystatechange事件来判断当前处于哪种状态,从表中可以看出,当XMLHttpRequest.readyState值为2时就可以读取响应头拿到我们要的时间戳了。代码如下:
<p id="time"></p> <script> ajax() function ajax(option){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ // ie xhr = new ActiveObject("Microsoft") } // 通过get的方式请求当前文件 xhr.open("get","/"); xhr.send(null); // 监听请求状态变化 xhr.onreadystatechange = function(){ var time = null, curDate = null; if(xhr.readyState===2){ // 获取响应头里的时间戳 time = xhr.getResponseHeader("Date"); console.log(xhr.getAllResponseHeaders()) curDate = new Date(time); document.getElementById("time").innerHTML = "服务器时间是:"+curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate()+" "+curDate.getHours()+":"+curDate.getMinutes()+":"+curDate.getSeconds(); } } } </script>
到此,服务器时间就取到了。其实响应头里面的信息不仅仅有时间戳,可以使用xhr.getAllResponseHeaders()来获取整个响应头信息,响应头里面还包括服务器类型及版本号、请求的文件类型及编码等其他信息(见下图一),都可以通过这种方式读取。为了证明获取的确实是服务器时间,我用手机测试了一下(见下图二),当前北京时间是2015年4月20日21:59,PC机时间我调成了2015年2月1日 21:16
图一
图二
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关推荐
-
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法.分享给大家供大家参考,具体如下: AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互. 准备工作 1.下载angular js库. 官网下载地址:https://angularjs.org/ 或者点击此处本站下载. 2.开发环境准备,由于是和Tomcat服务器
-
JS跨域请求外部服务器的资源
tomcat服务器提供的接口,不能在其他域中访问的时候,需要增 Access-Control-Allow-Origin:* 以下操作均在需要被访问的项目中设置 1.编写拦截器代码 package com.soft.filter; /** * Created by Administrator on 2017/2/6. */ import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IO
-
在windows上用nodejs搭建静态文件服务器的简单方法
在windows上用nodejs搭建一个静态文件服务器,即使你一点基础没有也能学会nodejs静态文件服务器的搭建,本文介绍的非常详细,很适合零基础入门的朋友学习. 首先安装nodejs: •新建一个node文件夹 •下载node.exe到该文件夹 •下载npm然后解压到该文件夹 •现在node文件夹是这样的 •把该目录加入到path环境变量 •在命令行执行 node -v npm -v 如果得到了版本号则表示nodejs安装完成 •在命令行中执行 npm config set registry
-
JS检测是否可以访问公网服务器功能代码
wifi认证开发过程所用到的,源码如下: 注:检测AC是否放行成功,是否可以访问公网阿里云服务器 功能调用: checkNet().then(function(res) { if(res) { //连网成功 } } else { //连网失败 } }) 功能代码: (function() { //检测入口 checkNet = function() { var def = $.Deferred(); xiuNet(null).then(function(res) { netWork(null).
-
WebSocket+node.js创建即时通信的Web聊天服务器
本文实例node.js创建即时通信的Web聊天服务器,供大家参考,具体内容如下 1.使用nodejs-websocket nodejs-websocket是基于node.js编写的一个后端实现websocket协议的库, 连接:https://github.com/sitegui/nodejs-websocket. (1)安装 在项目目录下通过npm安装:npm install nodejs-websocket (2)创建服务器 //引入nodejs-websocket var ws
-
Nodejs如何搭建Web服务器
使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.
-
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
0.Node环境下安装和使用Mock # 安装 npm install mockjs // 使用 Mock var Mock = require('mockjs') var data = Mock.mock({ // 属性 list 的值是一个数组,其中含有 1 到 10 个元素 'list|1-10': [{ // 属性 id 是一个自增数,起始值为 1,每次增 1 'id|+1': 1 }] }) // 输出结果 console.log(JSON.stringify(data, null,
-
JavaScript获取服务器时间的方法详解
本文实例讲述了JavaScript获取服务器时间的方法.分享给大家供大家参考,具体如下: Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了.业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的响应头里面的时间戳得到当前服务器时间! 原理就是这
-
利用JavaScript获取用户IP属地方法详解
目录 写在前面 尝试一:navigator.geolocation 尝试二:sohu 的接口 尝试三:百度地图的接口 写在后面 写在前面 想要像一些平台那样显示用户的位置信息,例如某省市那样.那么这是如何做到的, 据说这个位置信息的准确性在通信网络运营商那里?先不管,先实践尝试下能不能获取. 尝试一:navigator.geolocation 尝试了使用 navigator.geolocation,但未能成功拿到信息. getGeolocation(){ if ('geolocation' in
-
Java获取UTC时间的方法详解
本文实例讲述了Java获取UTC时间的方法.分享给大家供大家参考,具体如下: 取得本地时间: java.util.Calendar cal = java.util.Calendar.getInstance(); 取得指定时区的时间: java.util.TimeZone zone = java.util.TimeZone.getTimeZone("GMT-8:00″); java.util.Calendar cal = java.util.Calendar.getInstance(zone);
-
JavaScript获取服务器端时间的方法
用js做时间校正,获取本机时间,是存在bug的. 使用js也可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了.以下: 1.依赖jQuery 代码: function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); } 以上函数返回的就是一个Date对象,注意在使用ajax时必须同步,要不然无法返回时间日期. 无需填写
-
基于python时间处理方法(详解)
在处理数据和进行机器学习的时候,遇到了大量需要处理的时间序列.比如说:数据库读取的str和time的转化,还有time的差值计算.总结一下python的时间处理方面的内容. 一.字符串和时间序列的转化 time.strptime():字符串=>时间序列 time.strftime():时间序列=>字符串 import time start = "2017-01-01" end = "2017-8-12" startTime = time.strptime
-
Java 获取服务器环境的实例详解
Java 获取服务器环境的实例详解 废话不多说,直接上代码,代码中的注释写的比较清楚,请大家好好看, package com.rapido.utils; import java.util.Properties; /** * 获取服务器环境信息 * @author X-rapido * */ public class SystemDataUtil { public static Properties getSystemProperties() { Properties props = System
-
JavaScript数组排序reverse()和sort()方法详解
JavaScript中数组排序的方法有两个reverse()和sort(). reverse()方法会反转数组项的顺序: var arr = [1,2,3,4,5]; arr.reverse(); alert(arr); //5,4,3,2,1 sort()方法会按照字符串升序排列数组项,sort()方法会调用每个数组项的tostring()方法,即使数组中的每一项都是数值,sort()方法比较的也是字符串: var arr = [1,2,11,15,5]; arr.sort(); alert(
-
利用Pytorch实现获取特征图的方法详解
目录 简单加载官方预训练模型 图片预处理 提取单个特征图 提取多个特征图 简单加载官方预训练模型 torchvision.models预定义了很多公开的模型结构 如果pretrained参数设置为False,那么仅仅设定模型结构:如果设置为True,那么会启动一个下载流程,下载预训练参数 如果只想调用模型,不想训练,那么设置model.eval()和model.requires_grad_(False) 想查看模型参数可以使用modules和named_modules,其中named_modul
-
Linux中使用NTP保持精确时间的方法详解
前言 如何保持正确的时间,如何使用 NTP 和 systemd 让你的计算机在不滥用时间服务器的前提下保持同步.下面话不多说了,来一起看看详细的介绍吧. 它的时间是多少? 让 Linux 来告诉你时间的时候,它是很奇怪的.你可能认为是使用 time 命令来告诉你时间,其实并不是,因为 time 只是一个测量一个进程运行了多少时间的计时器.为得到时间,你需要运行的是 date 命令,你想查看更多的日期,你可以运行 cal 命令.文件上的时间戳也是一个容易混淆的地方,因为根据你的发行版默认情况不同,
-
asp.net获取系统当前时间的方法详解
本文实例讲述了asp.net获取系统当前时间的方法.分享给大家供大家参考,具体如下: 在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12:11:10)等. //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().
随机推荐
- C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
- 表单中Readonly和Disabled的区别详解
- java操作mysql入门代码实例(含插入、更新和查询)
- MongoDB中的一些坑(最好不要用)
- 用javascript做拖动布局的思路
- java多线程Future和Callable类示例分享
- 个人对于异步和多线程的关系的理解分享
- iOS实现第三方微信登录方式实例解析(最新最全)
- Python中read()、readline()和readlines()三者间的区别和用法
- 用Swift构建一个简单的iOS邮件应用的方法
- 匹配html标记的正则
- Laravel如何友好的修改.env配置文件详解
- 全面解析Bootstrap弹窗的实现方法
- PHP flush 函数使用注意事项
- asp xmlhttp下载一句话
- 使用lua实现php的print_r()函数功能
- MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数
- SQL Server里书签查找的性能伤害
- 使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
- JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
其他
- r语言lm函数多元回归
- python123摩尔斯电码转换
- C语言读写json格式文件
- js禁用手机物理返回键
- docker启动项 加入registry-mirrors
- 微信小程序返回到顶部
- tp vue 刷新404 nginx
- php中的deldot函数
- python 本来应该输出的但是无输出
- java根据日前生成的流水号
- el-row分栏布局怎么把按钮移到右边
- pycharm怎么为函数增加注释
- android 登录 注册 页面sqlite
- webview loadurl 多次调用后面的不加载
- idea 打包jar 找不到或无法加载主类怎么解决
- JavaScriptinstanceof 运算符的使用
- JavaScript 实例下载
- mysqldump windows 换行符
- 修改 authorized_keys 需要重启吗
- 小程序从input中获取数据传后端