网页与服务器时间不一致,js解决客户端与服务器时间不一致的问题
引出
最近在写一个项目时,要根据时间进行不同的展示,直接用new Date().getTime()获取当前时间,结果就出问题了。有些用户擅自修改自己的本地时间,导致获取到的时间并不是当前时间,尴尬。
思路
既然如此,首先想到的就是让本地时间以服务器的时间为基准,只要让服务器传一个时间戳过来就可以了。那如何实现动态获取时间呢?毕竟不能每次获取时间都到服务器去要吧。一个粗糙的思路,只要知道现在与获取服务器时间过了多久,然后动态的相加就可以了。那如果记录时间差呢?
刚开始我想的是,记录获取服务器时间时的时间点(gainServerTime),将当前时间点与gainServerTime相减,就可以得到经过了多久。但是,如果用户在进入页面之后修改时间的话,就会得到错误的时间差,并不能解决问题。
然后我想到了定时器,记录时间秒数experienceTime,每秒+1,固然会牺牲一定的性能,但问题是我没想到更好的办法。
实现
/**
* 获取当前时间的对象
* @param serverTime
* 服务器时间戳(秒)
*/
function GetNowDate(serverTime){
this.serverTime = serverTime || new Date().getTime();
// 记录经历时间
this.experienceTime = 0;
this.init();
}
/**
* 获取当前时间戳,毫秒级
*/
GetNowDate.prototype.getTime = function (){
return this.getDateObject().getTime();
};
/**
* 获取当前时间date对象
*/
GetNowDate.prototype.getDateObject = function(){
return new Date(this.getNowMilliTime());
};
// 获取当前毫秒级时间戳
GetNowDate.prototype.getNowMilliTime = function(){
return (this.serverTime + this.experienceTime) * 1000;
};
// 初始化对象
GetNowDate.prototype.init = function(){
// 设置定时器,动态增加时间
var _this = this;
setInterval(function() {
_this.experienceTime++;
}, 1000);
};
当然,看着就有很多问题,之后遇到再完善吧
WCF客户端和服务器时间不一致,导致通道建立失败的问题)
本文转载:http://www.cnblogs.com/bcbr/articles/2288374.html 最近,经常有客户反应,前天还用的好好的系统,今天就不能用了. 考虑到系统近来没有做过改动和 ...
解决Windows和Ubuntu时间不一致的问题
问题原因是使用的时间不一致导致的.win10直接从bios读出来的时间认为就是实际时间,ubuntu认为加上8个小时 后的才是.win10用的rtc ,ubuntu用的utc 在ubuntu16.04 ...
【jenkins】jenkins服务器与svn服务器时间不一致出现的问题
问题描述: svn提交了一次更新包,到了jenkins提交更新的时候,第一次代码没有生效,然后重新提交了一次,第二次才生效. 问题排查: 1.首先第一反应比对了下两次更新的包文件是否一致,然后发现大小 ...
【转载】解决Windows和Ubuntu时间不一致的问题
大家在切换操作系统的时候会发现一个问题, Windows 和Ubuntu的时间会出现不一致的情况.在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ubun ...
java 项目时间和服务器时间不一致
今天线上项目关于时间的几个任务都出了问题,查看日志发现日志的时间不对,用的是log4j,日志输出的时间都早了很长时间. 1 首先先登上服务器查看了服务器的系统时间 linux下 date命令 时间正确 ...
html+js 在页面同步服务器时间
将以下的代码 放置html页面中! quot ...
JS实现Ajax---例:获取服务器时间
Ajax在本质上是一个浏览器端的技术 XMLHttpRequest XMLHttpRequest对象 XMLHttpRequest对象在IE浏览器和非IE浏览器中创建的方法不同. 简而言之:它可以异步 ...
moment.js 默认使用服务器时间
在前端使用Date对象获取当前时间的时候,该时间是客户端的时间.但是该时间可以被用户修改,所以我们一般情况下并不想要这个时间.如果每一次获取时间的时候都请求一下服务器,那么将会对服务器造成不必要的压力 ...
JS根据服务器时间倒计时
原文链接:http://caibaojian.com/daojishi-2.html //获取服务器时间 function getSevertime(){ var xmlHttp = new XMLH ...
随机推荐
MooseFs-分布式文件系统系列(四)之简单聊聊MFS的日常维护
回顾 文件或目录的额外属性(noower,noattracache和noentrycache),可以通过MFS提供的命令(mfsgeteattr,mfsseteattr,mfsdeleattr等)检查 ...
Linux和UNIX监控
Linux和UNIX上的数据库监控工具包括监控CPU.内存.磁盘.网络.安全性和用户的监控工具.下面罗列了我们找到的有用工具及其简单描述. ps 显示系统上运行的进程列表 top ...
mac OS X 10.9.1 配置jdk环境变量
进入命令行 cd ~ touch .bash_profile vi .bash_profile 输入内容jdk变量配置内容: export JAVA_HOME=/Library/Java/JavaVi ...
Handlebars 介绍
最新项目用到了Ember.js前端框架,第一次使用这样的框架,准备国庆节花2天时间,研究一下它的用法. Ember框架的模板引擎用到了handlebars, 先看国外的一篇介绍文章:An Introd ...
MVC中的路由
authour: chenboyi updatetime: 2015-05-02 16:10:04 friendly link: 目录 1,思维导图 2,MVC处理机制简图(讲解路由解析) 3,默 ...
excel 下拉级联,重新选第一个,清空后一个已赋值,并且改变后一个下拉的内容。
在前面的部分,设置下拉级联,我们已经可以百度到很多视频,我就不再多说,而我搞了一天解决 的,是在俩菜单都有值的情况下,重新选第一个下拉,后面那个值怎么清除,是一个事件调用.上图. 其中"$H ...
Linux安装Discuz
安装lamp环境 安装参考 安装Discuz 1.进入官网 2.进入Discuz! 程序发布 3.选择最新版本 4.进入git地址 5.克隆下载 5. 确认Apache中的DocumentRoot配置 ...
Linux之vi/vim编辑器
1.概述 所有的Unix like系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在,但是目前我们使用比较多的是 vim 编辑器. vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的 ...
Java Iterator的一般用法
Iterator(迭代器) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的I ...
使用jsplumb的一些笔记
欢迎就是需要使用jsplumb跟正在使用jsplumb的一起讨论 欢迎私聊 1.关于jsplumb的connection的一些事件 ####connection拖动的事件 instance.bind( ...
网页与服务器时间不一致,js解决客户端与服务器时间不一致的问题相关推荐
- js解决客户端与服务器时间不一致的问题
引出 最近在写一个项目时,要根据时间进行不同的展示,直接用new Date().getTime()获取当前时间,结果就出问题了.有些用户擅自修改自己的本地时间,导致获取到的时间并不是当前时间,尴尬. ...
- bs客户端跨服务器管理文件,bs架构客户端和服务器
bs架构客户端和服务器 内容精选 换一换 SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障.云容器实例支持上传SSL证书,在使 ...
- 客户端与服务器之间的文件传输,客户端与服务器的文件传输
客户端与服务器的文件传输 内容精选 换一换 使用FTP上传文件时,写入失败,文件传输失败.该文档适用于Windows系统上的FTP服务.FTP服务端在NAT环境下,客户端需使用被动模式连接服务端.在这 ...
- udp服务器php代码例子,Java客户端PHP服务器UDP穿孔示例代码
我正在一个需要pe2p服务器的项目中工作,但是我还没有找到任何Java客户端php服务器示例代码.我了解udp打孔工作原理的概念,但是我无法在代码中工作. 我尝试过的 TheSocket.java p ...
- qt客户端显示服务器发送的图片,qt客户端显示服务器发送的图片
qt客户端显示服务器发送的图片 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...
- 用友t3 虚拟服务器设置,用友t3客户端与服务器设置
用友t3客户端与服务器设置 内容精选 换一换 本章节指导您使用MongoDB客户端和Robo 3T工具,通过公网连接GaussDB(for Mongo)集群实例.操作系统使用场景:弹性云服务器的操作系 ...
- html显示日期时间代码,JS全中文显示日期时间代码
JS全中文显示日期时间代码_网页代码站(www.webdm.cn) function number(index1){ var numberstring="一二三四五六七八九十"; ...
- 服务器提取用户信息,获取客户端和服务器信息
运行效果: 前台设计界面: 前台代码: 无标题页 服务器端环境 服务器名称: 服务器的IIS: 服务器的IP地址: 服务器的域名: 服务器的操作系统: 服务器的端口: 服务器的路径: 域名主机: 服务 ...
- 客户端与服务器信息交互的流程,客户端与服务器的交互流程
客户端与服务器的交互流程 内容精选 换一换 ecFlow是一个工作流管理器,使用户可以在受控环境中运行大量程序,彼此之间以及时间上相互依赖.它提供了对硬件和软件故障的容忍度,并具有良好的重启功能.ec ...
- 天正服务器不显示,天正软件客户端修改服务器地址
天正软件客户端修改服务器地址 内容精选 换一换 如果IP经过NAT/WAF,则只能获取到NAT/WAF转化后的IP地址,无法获取到NAT/WAF前的IP地址.如果客户端为容器,只能获取到容器所在主机的 ...
最新文章
- JZOJ 5907. 【NOIP2018模拟10.16】轻功(qinggong)
- C#字符串处理(String与StringBuilder)
- Node服务一键离线部署
- 安装git之后,桌面出现蓝色问号的解决方法
- 我是如何用CSS绘制各种形状的
- Maven—Eclipse中配置Maven
- bash给脚本加进度条_shell脚本进度条。
- Linux网络socket网络抓包工具
- masm32 安装过程(记录)
- java Socket编程
- 浙大mooc翁凯 C语言笔记
- CAN波特率与负载率
- mldonkey 安装详细过程
- php面试题目(中等水平)
- vue饿了么项目实现评论列表的筛选
- oracle rman crosscheck,rman crosscheck作用
- POWER BI里如何累计求和(一)
- Efficient Image Dehazing with Boundary Constraint and Contextual Regularization
- gateway sentinel 熔断 不起作用_熔断器交流与直流有什么区别?错过这篇文章悔之晚矣!【超详细】上海民熔...
- 台湾大学神经网络架构设计