Ruby on rails Rails窗体在本地时区显示日期时间
我是rails新手,刚刚完成rails教程,正在构建我的第一个solo应用程序。用户可以在特定时间创建“事件”。目前,用户表单使用UTC格式。我如何将其设置为当地时间 我不想在他们提交后更改它,因为这会让用户感到困惑。打开新表单时,默认时间为当前UTC时间。我希望那是他们当地时区的时间Ruby on rails Rails窗体在本地时区显示日期时间,ruby-on-rails,ruby-on-rails-3,datetime,timezone,Ruby On Rails,Ruby On Rails 3,Datetime,Timezone,我是rails新手,刚刚完成rails教程,正在构建我的第一个solo应用程序。用户可以在特定时间创建“事件”。目前,用户表单使用UTC格式。我如何将其设置为当地时间 我不想在他们提交后更改它,因为这会让用户感到困惑。打开新表单时,默认时间为当前UTC时间。我希望那是他们当地时区的时间 <%= f.label :Date_Time %><br /> <%= f.datetime_select :date %> 谢谢,有很多方法可以做到这一点
<%= f.label :Date_Time %><br />
<%= f.datetime_select :date %>
谢谢,有很多方法可以做到这一点 我建议你先看看 服务器端 如果您希望保持时间一致,您可能希望使用Rails内置时区选项:
#config/application.rb
config.time_zone = 'Eastern Time (US & Canada)'
你可以在这里看到更多
客户端
在客户端,您必须考虑您想要实现的目标。如果您已经设置了时区,您可能会受益于创建时区存储库ENV variables或datatable,并允许用户从中进行选择,如下所示:
#app/views/form.html.erb
<%= form_tag %>
<%= select_tag :date, options_from_collection_for_select(@timezones, "id", "name") %>
<% end %>
或者,您可以通过javascript传递时区:
用户体验
底线是你需要考虑你想要达到的目标。如果你的用户需要本地化的时间,你应该使用国家选择系统,他们会给你他们的国家,你可以指定一个时区
从经验上讲,最好使用UTC平均存储所有时间,然后使用用户规范处理这些时间Simone在这里回答得很好-。他的Javascript方法就是我会使用的方法