我们如何测量服务器时间和浏览器时间之间的时间差? 如果我们在浏览器和服务器上都花费毫秒时间,那么服务器和浏览器在两个不同的时区是否会给我提供准确的结果?服务器和浏览器之间的时间差
0
A
回答
2
没有内置的方式。您应该在应用程序级别上执行此操作。您可以使用JavaScript检索时间并将此结果发送到服务器,您可以明显知道它是几点。现在比较这些结果。
结果将精确到网络延迟。
如果你只是想知道时区差异就足够了。但是,如果您想了解网络延迟,您可以估计它:将客户端时间从客户端发送到服务器,将服务器时间从服务器发送到客户端,并考虑时区偏移量。其余的是客户端 - >服务器 - >客户端延迟。将它除以2 - 这是单向延迟的第一个估计。更好的估计需要更多统计数据
+0
我不太担心网络延迟。是的,正如你所提到的,获得一段时间的JS并将它发送到服务器是我计划要做的事情。在这种情况下,如果浏览器和服务器的时区不同,这种比较是否准确?以毫秒为单位的时间是否会给我带来不同,包括时区偏移? – neo
0
您可以通过Javascript Date.getTimezoneOffset()获取客户端的时区GMT偏移量,并将该值保存到隐藏字段。下面是一个示例脚本,可用于确定客户端的时区:
var now = new Date();
var currentTimeZoneOffset = now.getTimezoneOffset();
var jan = new Date(now.getFullYear(), 0, 1, 2, 0, 0), jul = new Date(now.getFullYear(), 6, 1, 2, 0, 0);
var hemisphere = (jan.getTime() % 24 * 60 * 60 * 1000) > (jul.getTime() % 24 * 60 * 60 * 1000);
var dstOffset = hemisphere ? jan.getTimezoneOffset() : jul.getTimezoneOffset();
var standardOffset = hemisphere ? jul.getTimezoneOffset() : jan.getTimezoneOffset();
var gmtHours = -currentTimeZoneOffset/60;
document.write("GMT time-zone offset: " + gmtHours +"<br>");
var isDstActive = (currentTimeZoneOffset-dstOffset) != 0;
document.write("Daylight saving time is active: " + isDstActive + "<br>");
var isTimezoneWithDst = (dstOffset-standardOffset) != 0;
document.write("DST is observed in this timezone: " + isTimezoneWithDst);
相关问题
- 1. 服务器和浏览器之间的时间同步
- 2. 服务器和浏览器的时间差
- 3. 浏览器之间的HTML差异
- 4. 服务器时间未与浏览器的时间匹配服务器
- 5. 浏览器和服务器之间的代码共享(继承)
- 6. 服务器和本地系统之间的时间差错
- 7. 计算服务器和用户时间之间的差异
- 8. 服务器和客户端之间的日期时间差异
- 9. 在服务器和浏览器之间丢失数组元素
- 10. 在浏览器和服务器之间共享逻辑
- 11. 在浏览器和服务器之间同步HTML
- 12. 服务器时间差异
- 13. 浏览器之间的互动Repl,浏览器,http服务器在clojurescript
- 14. 如何解决本地服务器时间和GMT时间之间的时差?
- 15. 差异。 Web服务器和媒体服务器之间?
- 16. 在烬器切换浏览器选项卡之间的时间差
- 17. 2px在Chrome浏览器和其他浏览器之间的`outerHeight()`
- 18. 渲染phantomjs和我的网页浏览器之间的差异
- 19. 客户端和服务器之间的时区差异?
- 20. 我和betfair服务器之间的时差
- 21. 铬/ Safari浏览器和火狐之间的CSS定位差异
- 22. 浏览器和控制台之间的活动记录差异
- 23. 谷歌浏览器 - Mac和PC之间的差异
- 24. IE浏览器CSS IE6,IE7,IE8和IE9之间的差异
- 25. 终端和浏览器之间的PHP差异
- 26. 服务器在浏览器中的响应时间
- 27. 用java编写的浏览器和服务器之间的通信
- 28. 浏览器可以连接服务器的最长时间(反之亦然)
- 29. 如何保持服务器和浏览器之间的队列同步?
- 30. KEPServerEX(服务器)和WinCC浏览器V7.3(cliënt)之间的OPC UA连接
看起来像这完全取决于用户的时钟设置为什么时间。我可以在任何我喜欢的技术上设定我的时钟。 – BeRecursive
听起来你应该考虑使用[NTP](http://en.wikipedia.org/wiki/Network_Time_Protocol)。 –
让我们从你如何计算浏览器时间和服务器时间开始。你会告诉我们一些代码吗?还有你为什么要这样做。你试图达到什么目标? –