【问题标题】:Fix Server Time on NodeJS and ExpressJS修复 NodeJS 和 ExpressJS 上的服务器时间
【发布时间】:2017-03-27 23:04:48
【问题描述】:

运行 Node JS 和 ExpressJS,我的服务器时间似乎提前了 5 小时。有人有什么建议吗?

【问题讨论】:

  • 关闭它,因为它不是可重现的问题。问题可能是您的远程运行服务器本地时间与您的客户端本地时间不同.考虑在 Date 对象上使用 getUTCsetUTC 前缀方法。

标签: node.js express time server


【解决方案1】:

我们大多数人在处理时间问题时都会遇到这个问题,例如根据时间和日期制作图表,所以您并不孤单。无论你的服务器是什么时间,它都不会匹配每个使用 Node.js 程序的人的时区,除非这是一个私人创建的。一些建议:

  1. 你没有提到什么类型的服务器。首先,您需要确定您将在 Node.js 程序中使用的时区 (tz)(出于理智目的,如果没有别的)。如果您有一个可以从世界任何地方访问的模型,那么人们会期望某些事物使用他们的当地时间,而其他事物可能会使用 UTC。

  2. 您的程序(模块)需要知道它们何时使用 UTC。例如,在您有时间戳的数据库中,您需要知道该时间戳所使用的时间,以便之后基于 TZ 的计算是正确的。

  3. 现在头疼了。对于 TZ 和格式的认真管理,您应该使用moment。但是,我是在经历了痛苦的经历后才说的,尽管moment 很棒,但需要时间来理解它。我不建议只是深入研究,而是花时间了解如何正确操作 TZ 以适应 UTC,尤其是满足您自己的需要。 TZ 瞬间从简单到相当复杂的方案。 Read up on it here

  4. 还有其他一些非常棒的日期时间模块(只需转到 NPM 并搜索日期时间),而 moment 还有一些其他插件(如 twix),因此涵盖了该领域。

  5. 最后,在声明日期变量时要非常小心,避免使用日期和时间变量进行范围界定和提升。尤其是在日期时间,这些会产生看不见的后果。

希望以上内容有所帮助。

【讨论】:

    猜你喜欢
    • 2018-08-28
    • 2012-10-14
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2017-08-20
    相关资源
    最近更新 更多