Javascript 使用 momentjs 在时区之间进行转换

2023-12-27

在我的应用程序中,用户选择日期+时间和时区。此选择必须向其所在时区的其他用户显示,这意味着如果来自纽约的用户 A 选择美国东部时间 8 月 8 日凌晨 3:00,来自北京的用户 B 将看到该日期时间转换为中国标准时间 (CST)。

为此,我想 - 好吧,我保存用户 A 的日期并告诉他从 4 个时区中进行选择。服务器端我使用时刻时区将其从他的 EDT 选择转换为 UTC,并将其保存为数据库中的 UTC,这样当我读取它时,我会根据其他用户自己的时区将其转换回其他用户。

这是正确的方法还是我使事情变得过于复杂?目的是用户A可以选择她想要的时区,数据库保存为标准化UTC,目标用户在他自己的时区中看到。

(顺便说一句,我在服务器端使用node.js) 谢谢,


您的方法是正确的:将 UTC 时间保存在数据库中,并根据用户的时区将其显示给用户。

momentjs可以帮助您做到这一点,但您需要为其提供历史时区更改的文件。

check http://momentjs.com/timezone/ http://momentjs.com/timezone/以获得进一步的解释。

一旦你有了这个,就很简单了

var jun = moment("2014-06-01T12:00:00Z");
jun.tz('America/Los_Angeles').format('ha z');  // 5am PDT

另外:不要将用户时区存储为 EDT、CST 或 -6。小时班次可能会随着夏季时间、冬季时间而变化,..您需要存储 Olson 格式“America/Los_Angeles”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 使用 momentjs 在时区之间进行转换 的相关文章

随机推荐