我有一个Rails 5,用户可以在不同国家/地区预约约会。现在我的数据库以UTC格式存储所有日期,Rails应用程序设置为America / Sao_Paulo。
因此,如果有人在14:00预约,该应用程序会将其理解为Sao_Paulo并将其转换为UTC。当我读取日期以显示它时,Rails会自动将其转换回Sao_Paulo。没有麻烦。
但现在如果有人在德国预约,我想我必须接受输入并将其解析到德国/柏林。 Rails会将它存储为UTC,我将不得不创建一个额外的列来存储时区,当我想在某个地方显示时间时,我必须手动将其转换回柏林。
我说得对吗?我觉得整个话题很混乱。 是否有宝石为我处理这一切?
答案 0 :(得分:1)
我认为这个要求没有任何宝石。
我已经在我的项目中手动处理了这个问题。我在选择时间时选择了为用户选择时区。 在后端,保存时可以转换UTC时间。
您可以为用户做的最好的事情是编写JS代码,在使用用户系统的TimeZone加载文档后设置TimeZone的默认值。
您可以在我的网站Shuriken Live上查看此示例。只需注册并转到Live Polling Plugin并选择任何模板。试着安排那篇文章。我在我的网站上使用了相同的方法。