比较客户端和服务器系统时间的差异(Javascript和c#)

Compare Difference in Client and Server System times (Javascript and C#)

本文关键字:Javascript 客户端 服务器 系统 时间 比较      更新时间:2023-09-26

我希望比较客户端的系统时间(使用javascript)与服务器的时间(在c#中)。目前我正在使用:

抢占客户端的时间
var d = new Date();
var time = d.getTime();

返回从某个日期开始以毫秒为单位的时间。

然后我在服务器上运行DateTime.Now以获得时间。这是在客户机上完成的最后一件事,也是在服务器上完成的第一件事。然后,差异将作为元素添加到浏览器指纹中。

我不确定这是否是找到这些时间的最佳方法,或者将这些时间与时间进行比较的最佳方法是什么。我正在寻找一种方法来比较从客户端获得的时间和从服务器获得的时间的毫秒差异,无论是通过转换不同格式的时间,还是以不同的方式请求时间

实际的计算取决于您想要计算它的位置(在客户机上还是在服务器上)。不过,最重要的是决定以哪种格式进行实际的区分。当使用getTime()时,JavaScript返回自UNIX纪元以来的毫秒数。您可以很容易地在c#中计算相同的时间对象,查看此链接以获得更多关于在c#中计算UNIX纪元的信息。这将为您提供两个具有毫秒数的变量,可以很容易地用于添加/减去,以比较服务器和客户端之间的时间差异。

您可能还应该检查服务器和客户端之间的时区差异。您可以使用以下命令获取客户端的本地时区偏移量到UTC时区:

var offset = new Date().getTimezoneOffset();
编辑:

@RobG公正地指出UNIX纪元总是基于UTC,因此不需要进行时区计算。