gpt4 book ai didi

ruby-on-rails - Rails 中的时区

转载 作者:行者123 更新时间:2023-12-03 16:55:30 24 4
gpt4 key购买 nike

我有一个应用程序,我想允许用户设置时区。当用户创建提醒条目时,该条目将以 UTC 格式存储在 db 中。但是当他在应用程序中打开日历条目时,他应该会在他选择的时区看到该条目。
我正在使用慢性病,但这在这里无关紧要。
在我的 ApplicationController.rb ,我有以下字符串:

before_filter :set_user_time_zone
...
def set_user_time_zone
Time.zone = current_user.timezone if user_signed_in?
end

此后,条目仍以 UTC 格式保存,但存在时差。例如,我将时区设置为 - “Delhi”,它是 UTC 的 +530。当我想保存“1 月 16 日 - 12:15 AM”的日历条目时 - 数据库填充了“2011-01-15 18:45:19 UTC” - 所以它比我想要的实际时间早 5:30保存。
在 UI 中,我也一直看到这个条目,而不是当前用户时区中显示的时间。

我想知道在 Rails 中处理这种时区功能的正确方法应该是什么。

最佳答案

在数据库中,您需要以 UTC 存储时间,而对于 UI,您需要将其转换为用户的时区。

rails 控制台中的示例:

Time.zone = "New Delhi"         #=> "New Delhi"

Time.now # => 2011-01-15 16:45:18 -0600

Time.now.in_time_zone # => Sun, 16 Jan 2011 04:15:26 IST +05:30

关于ruby-on-rails - Rails 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com