【问题标题】:Handling timezones between Client and Server处理客户端和服务器之间的时区
【发布时间】:2022-11-16 10:42:29
【问题描述】:

我正在开发客户端和服务器应用程序,并且正在使用 luxon 和 postgres。

考虑到我写这篇文章的当前时间 (2022-11-15T22:55:27.374-03):

  • 在本地服务器/数据库上,日期以 UTC-3 格式保存,如上所示 (2022-11-15T22:55:27.374-03);
  • 在托管服务器/数据库上,日期保存在 UTC-0 (2022-11-16T01:55:27+00);

我的问题是我需要在一天的开始和结束之间查询数据,虽然在本地它可以工作,但在服务器上却不行,因为一天从 03:00 开始到第二天 02:59 结束。

我尝试了基于 env 的硬编码条件偏移,但我不认为这应该是最好的解决方案......

有没有正确的方法来处理这个时区差异?

【问题讨论】:

    标签: node.js postgresql nestjs luxon


    【解决方案1】:

    您需要定义一天的开始和结束的含义。总共有 48 小时,其中任何时区都可以在特定日期。您必须决定您的查询是在服务器时区还是在本地客户端时区的“今天”。如果您的查询是服务器的“今天”。您可以将任何请求解析为纯时间戳,并让接收者决定使用什么范围。另一方面是请求您想要的实际日期字符串,例如2020-01-01 并让服务器计算其时区的界限。

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 2011-04-06
      • 2017-03-15
      • 2016-05-12
      • 2023-03-12
      • 2011-02-10
      • 2013-10-30
      • 1970-01-01
      相关资源
      最近更新 更多