在远程服务器上获取我的本地时间

Getting my local time on a remote server

本文关键字:我的 时间 获取 服务器      更新时间:2023-09-26

我正在node.js中创建一个小网络服务器。目前,服务器使用新的 Date() 来获取当前时间。当我在开发计算机上运行服务器时,这工作正常。但是一旦我将服务器部署到网络托管商(在其他国家/地区),我就得到了错误的时间。

节点.js服务器如何获取我所在国家/地区的当前时间(包括夏令时偏移量)?

如果可能的话,不涉及一些外部服务器,如谷歌时间API。

Javascript 日期只能理解环境的本地时间,即 UTC。这是日期对象的基本限制,并且没有内置的解决方法。

如果您始终希望服务器返回不同时区的时间,则可以包含时刻时区时区库。它会将服务器的本地日期转换为您选择的时区。

为了做到这一点,你必须将所有日期转换为时刻,但对于大多数人来说,这不是问题。

要获取美国/Los_Angeles时区的当前时间,请执行以下操作:

moment().tz("America/Los_Angeles").format()
"2016-03-18T19:57:22-07:00"

请注意,我当前所在的时间是"2016-03-18T21:58:05-05:00"。日期已向后移动两个小时以反映时差。

这当然是一个依赖项,但不涉及外部服务器。

Moment TimeZone 的节点文档可以在这里找到:http://momentjs.com/timezone/docs/#/use-it/node-js/

您应该使用 UTC 时间,这是时区中立的。