【发布时间】: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传递给 JavaScriptnew 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