【问题标题】:Is there a way to get right time zone in javascript?有没有办法在javascript中获得正确的时区?
【发布时间】:2020-09-24 00:54:30
【问题描述】:

我有一个与时区有关的问题。

我们正在应用中保存日志,但我们必须以本地日期时间显示日期。

所以,例如:

用户 A 保存了一个日志,数据库注册了这个:2020-09-23T20:22:18.7926625

如果我转换那个时间,它是 8:22(比我高 1 小时),我应该怎么做才能将该日期转换为我当前的时区,所以它可以显示为 7:22

【问题讨论】:

  • 尝试导入moment.js。很有用
  • 我通常在提交到服务器之前将客户端时间转换为 UTC。这样就可以使用内置的 js Date() 或 @chewie 建议的类似 moment.js 的库将其转换回来。基本上,您希望数据库中的时间始终为 UTC(或首选标准),并将其转换为可能显示的本地时区。
  • 您应该保存为时间戳,然后将 SELECT UNIX_TIMESTAMP(timestamp)*1000 WHERE condition 传递给 JavaScript new Date(here)。只需确保您在服务器上正确设置了时间。有时您无权访问服务器时间。在这些情况下(至少在 PHP 中)您可以在发送任何标头之前使用date_default_timezone_set('America/Vancouver');,然后使用time() 插入准备好的语句,它必须绑定到一个变量。
  • 这里添加只是为了通知您 MomentJs 不再是推荐的库。虽然它仍然是最实用的一个,但还有其他替代品可用于替代 MomentJs。这是 MomentJs 自己写的关于原因的文章:momentjs.com/docs/#/-project-status
  • 嗨路易斯。请阅读帮助中心的How do I ask a good question?How to create a Minimal, Reproducible Example。然后要么edit your question 要么问一个新的。特别是,请在您的问题中添加代码,并告诉我们该代码是在客户端还是在服务器上运行。请务必告诉我们您的预期与实际结果。谢谢。

标签: javascript reactjs date timezone timestamp-with-timezone


【解决方案1】:

2014 年的This article 可能会提供解决方案,或者如果您需要持续的时区转换this article 可能会有所帮助;否则,我会尝试在末尾添加 -1:00

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 2012-11-02
    • 2021-08-21
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多