Javascript与时间之间的时区转换

在我的应用程序中,用户selectdate+时间和时区。 这个select必须在其自己的时区显示给其他用户,这意味着如果纽约的用户Aselect了美国东部时间8月8日凌晨3点,北京的用户B将把这个date时间转换为中国标准时间(CST)。

为了做到这一点,我想 – 我可以保存用户A的date,并告诉他从4个时区中select。 服务器端我将它从EDTselect转换为UTC时区,并将其保存为数据库中的UTC,以便当我读取它时,根据自己的时区将其转换回其他用户。

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

(im使用node.js服务器btw)谢谢,

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

momentjs可以帮助你做到这一点,但你需要给它的历史时区变化的文件。

检查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。 小时class可以随着夏季,冬季时间的变化..你需要存储奥尔森格式,'美国/洛杉矶'