gpt4 book ai didi

ruby-on-rails - Rails-在指定时区中选择日期时间

转载 作者:行者123 更新时间:2023-12-04 04:27:14 24 4
gpt4 key购买 nike

我正在使用一个音乐会巡回网站的应用程序,该网站的所有时间(公告时间,销售开始时间和事件开始时间)均位于每个特定 field 的时区。我在适当的地方输入用户输入的日期/时间,然后运行before_filter设置适当的时区,以便所有内容都以UTC格式存储在数据库中。对于"new"表单,以及在索引和显示操作中显示时间,一点都没有问题。当数据从数据库中带出并进入 View 时,我使用in_time_zone根据特定场所进行调整。

唯一的问题是在编辑表单上。选择的日期/时间以UTC显示数据。当我在网站上工作时,我会进行心理调整,但对于其他人则感到困惑。我想按照以下方式做一些事情:
<%= f.datetime_select :start_datetime.in_time_zone(@event.time_zone) %>
或者,在 Controller 中:

def edit
@performance = Performance.find(params[:id])
@event = @performance.event
@performance.start_datetime = @performance.start_datetime.in_time_zone(@event.time_zone)
end

然后简单地说, <%= f.datetime_select :start_datetime %>

不幸的是,我还没有找到正确的方法来做到这一点。您有什么值得一试的想法吗?

非常感谢你。

最佳答案

您可以使用datetime_select的默认方法,如下所示:

%br
= f.label :req_sess_start, "Session starts at"
= f.datetime_select(:req_sess_start, :start_year => 2010, :ampm => true, :default => 0.days.from_now.in_time_zone(@timezone))

由于显示了默认值,客户将假定必须在其本地时区中输入时间,但是...
此值实际上是您应用程序的默认时区(如application.rb中提供的,默认值为UTC)。
因此,您将需要一些服务器端编码才能将其转换为正确的值。

关于ruby-on-rails - Rails-在指定时区中选择日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246987/

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