我目前正在开发一个项目,将日期时间保存在 MongoDB 中。然而,在处理来自不同地区的用户的时区和夏令时时,我面临一些挑战。现在,我正在使用 Moment JS 来处理与时间相关的操作,但我想确保遵循行业标准和最佳实践,以平稳且专业的方式处理此问题。
示例场景:
显示用户本地时区的时间:我想显示本地时区的时间戳,即使我目前以 UTC 格式保存所有时间。
处理夏令时:我希望系统在安排活动时自动调整夏令时变化,以便时间表示保持准确。
处理将日期时间与时区一起存储在 MongoDB 中,因此在检索它以显示时,甚至会考虑夏令时。
我应该坚持使用 Moment JS,还是有更好的替代方案或其他库可以为这些需求提供更好的支持?我也很好奇如何在基于 MongoDB 的应用程序中有效地实现这些功能。
如果有人可以提供一些指导,分享一些代码示例,或者向我指出相关资源,我将非常感激。
这只是我研究的开始,希望得到一个大局观
最重要的一点是存储
Date
对象,而不是字符串。然后,时间戳始终存储为 UTC 时间,通常客户端应用程序负责以本地格式和本地时区显示这些值。
Moment.js 已弃用,没有进一步的开发。从长远来看,您应该迁移到另一个库,例如Day.js 或 Luxon。这是一个品味问题,你使用哪一个。我最喜欢的是Luxon,因为我不喜欢一一加载所有插件。在 MongoDB 服务器脚本中,脚本的大小和带宽并不重要。 Luxon 更严格地遵守 ISO-8601 标准(例如参见 https://github.com/iamkun/dayjs/issues/1729)。