服务器和浏览器之间的时差
Time difference between server and browser
我们如何测量服务器时间和浏览器时间之间的时差?如果我们在浏览器和服务器中都以毫秒为单位计算时间,那么在服务器和浏览器位于两个不同的时区时,它会给我准确的结果吗?
没有内置的方法。您应该在应用程序级别执行此操作。您可以使用javascript检索时间并将此结果发送到服务器,在那里您可以清楚地知道它是什么时间。现在比较这些结果。
结果将准确到网络延迟。
如果您只想知道时区差异,那就足够了。但是,如果您想知道网络延迟,您可以估计它:将客户端时间从客户端发送到服务器,将服务器时间从服务器发送到客户端,考虑时区偏移量。其余的是客户端>服务器>客户端延迟。将其除以 2 - 这是单向延迟的第一个估计值。更好的估计需要更多的统计数据。
您可以通过 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);
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- javascript中两年之间的小时差(带闰年)
- 如何使用moment.js获取24小时内日期之间的时差
- 获取两个时区之间的时差(Javascript)
- 如何在 24 小时制下计算两个时间之间的时差
- 客户端和服务器之间存在时差
- 计算具有不同时区的服务器和客户端之间的时差
- 在 JavaScript 中获取两个时间之间的时差
- 如何获取两个日期对象之间的小时差
- 服务器和浏览器之间的时差
- 查找当前时间和字符串之间的时差
- 获取两个日期时间之间的时差
- 计算同一时区或不同时区之间的时差
- 获取两个日期对象之间的小时差
- 如何计算Javascript中字符串之间的时差?
- 获取现在GMT和2013年1月1日GMT之间的GMT时差
- 计算2天之间的时差,转换为UTC
- 在AngularJS中计算两个日期之间的小时差
- 如何使用矩 js 查找两个时区之间的时差