Javascript 服务器与服务器之间的时间同步;浏览器

Javascript 服务器与服务器之间的时间同步;浏览器,javascript,php,Javascript,Php,我正在为一家公司制作一个实时提要,该提要显示了他们当前24小时内的生产计划状态。问题是,一些员工需要能够在不同的时区查看来自国外的实时提要 有2个元素需要显示“现场”(服务器)的当前时间: 必须在现场显示当前时间的时钟 一个进度条,显示当前24小时内的进度 现场时段 我知道同步实时时间是低效的。我不确定如何抵消客户机上与服务器匹配的时间,因为我可能会遇到许多问题: 两个地点的夏令时 服务器前面或后面的时区 如果任何人有任何经验/想法可以帮助,我们将不胜感激 直接从以下地址致谢: 这将

我正在为一家公司制作一个实时提要,该提要显示了他们当前24小时内的生产计划状态。问题是,一些员工需要能够在不同的时区查看来自国外的实时提要

有2个元素需要显示“现场”(服务器)的当前时间:

  • 必须在现场显示当前时间的时钟

  • 一个进度条,显示当前24小时内的进度 现场时段

我知道同步实时时间是低效的。我不确定如何抵消客户机上与服务器匹配的时间,因为我可能会遇到许多问题:

  • 两个地点的夏令时
  • 服务器前面或后面的时区
如果任何人有任何经验/想法可以帮助,我们将不胜感激

直接从以下地址致谢:

这将获得UTC和本地时间之间的时区偏移量(以分钟为单位)(上面的示例除以60转换为小时)。这已经考虑到了夏令时

如果您的服务器将服务器时区偏移量放入页面中的变量中,或与实时数据一起发送,或者如果实时数据是UTC时间,则您可以直接从以下位置计算客户端和数据之间的差异。

这将获得UTC和本地时间之间的时区偏移量(以分钟为单位)(上面的示例除以60转换为小时)。这已经考虑到了夏令时


如果服务器将服务器时区偏移量放入页面中的变量中,或与实时数据一起发送,或者如果实时数据是UTC时间,则可以计算客户端和数据之间的差异。

服务器时间应为UTC。这样,移动时区就更容易了

不要依赖客户端的时区,因为它依赖于客户端的机器,可以设置为任何时间和时区。拥有需要时区的帐户。将其用于时区偏移。这也是为什么在线服务会询问你的时区而不是检测它的原因

然后,您可以选择间隔同步,也可以选择套接字。请注意,延迟可能会延迟几秒钟

间隔同步

您可以让服务器提供初始时间和时区偏移。根据这些初始数据计算客户端的初始时间,并让客户端进行计时。由于脚本可能会失去同步,因此您需要定期同步到服务器,大约每5分钟同步一次

插座


让服务器计算用户所在时区的时间,并每秒通过套接字发送一次。您只需在客户端显示它。

服务器时间应以UTC为单位。这样,移动时区就更容易了

不要依赖客户端的时区,因为它依赖于客户端的机器,可以设置为任何时间和时区。拥有需要时区的帐户。将其用于时区偏移。这也是为什么在线服务会询问你的时区而不是检测它的原因

然后,您可以选择间隔同步,也可以选择套接字。请注意,延迟可能会延迟几秒钟

间隔同步

您可以让服务器提供初始时间和时区偏移。根据这些初始数据计算客户端的初始时间,并让客户端进行计时。由于脚本可能会失去同步,因此您需要定期同步到服务器,大约每5分钟同步一次

插座


让服务器计算用户所在时区的时间,并每秒通过套接字发送一次。您只需在客户端显示它。

为用户提供选择所处时区的选项(通过下拉或选项页面),并使用php的本机函数date\u default\u timezone\u set进行设置

日期默认时区设置(“欧洲/布鲁塞尔”)

然后自动计算主机服务器和用户之间的时差,并考虑夏令时

文件如下:

然后使用php的日期函数显示时间:

日期(“c”);//ISO 8601日期


为用户提供选择他们所在时区的选项(通过下拉菜单或选项页面),并使用php的本机函数date\u default\u timezone\u set进行设置

日期默认时区设置(“欧洲/布鲁塞尔”)

然后自动计算主机服务器和用户之间的时差,并考虑夏令时

文件如下:

然后使用php的日期函数显示时间:

日期(“c”);//ISO 8601日期


感谢所有的答案,这个答案解释了一些有用的选项,最后我选择了间隔同步方法。谢谢你!感谢所有的答案,这个答案解释了一些有用的选项,最后我选择了间隔同步方法。谢谢你!
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;