我正在开发一个用户创建事件的应用程序。对于每个事件,我使用倒计时 - 所以在页面上显示事件开始时剩余的时间(小时,分钟和秒)。
我在荷兰(+ 1h),所以当我创建一个事件并在3月29日19:45设置它的开始,然后查看数据库时,我看到以下(列为datetime
):
2015-03-29 19:45:00
但是当我加载页面时,它会显示事件将在1小时内开始。如何处理这种行为?
另外,我想再问一件事 - 比方说我在19:45h开始了一个事件。如何确保有人在加利福尼亚浏览我的网站(比荷兰落后9小时)会看到适当的时间(这个人应该在10:45而不是19:45看到活动的开始)。
谢谢,我没有做过时间/区域的认真工作。
PS:我用于该应用的服务器位于阿姆斯特丹(DigitalOcean服务器)。
答案 0 :(得分:0)
这可能是因为您在db表中保存utc的时间并将应用程序时间设置为GMT。检查rails控制台中的Time.zone。
答案 1 :(得分:0)
除非您在应用配置中明确指定,否则Rails可能会使用您服务器的时区。
为了支持能够在不同时区呈现适当时间的行为,您需要了解哪个TZ用户(正确显示)。
为此您有两个选择:
选项B (后端+前端)
选项B (所有服务器端)
我建议选项A ,特别是如果您没有用户配置文件,这可能是构建此功能的唯一可行方法。