Tom*_*man 2 ruby timezone ruby-on-rails
几乎每一个environment.rb都有一条线config.time_zone = 'UTC'.
这条线究竟做了什么,在什么情况下我想改变它(例如config.time_zone = 'EST')?
设置config.time_zone更改Rails应用程序的默认时区.这是所有时间都将显示给您的用户的时区.它也是设置属性时所采用的时区.
但是,Rails将始终以UTC格式存储数据库中的时间.翻译发生在幕后,所以(大多数时候)你不必担心它.
将此时区更改为大多数用户所在的时区是很常见的.您可以运行此rake任务以查看可供选择的所有时区.
rake time:zones:all
Run Code Online (Sandbox Code Playgroud)
在每个请求的基础上更改当前时区也非常容易,允许每个用户配置它们所在的时区.这是您可能添加到应用程序控制器的前一个过滤器示例.
before_filter :set_user_time_zone
private
def set_user_time_zone
Time.zone = current_user.time_zone if logged_in?
end
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此Railscasts剧集.
只是为Ryan的优秀答案添加一点.如果你想把它设置为东部时间,它就不会
config.time_zone = 'EST'
Run Code Online (Sandbox Code Playgroud)
这将是
config.time_zone = 'Eastern Time (US & Canada)'
Run Code Online (Sandbox Code Playgroud)
使用以下时区之一获取可用选项列表:
rake time:zones:all
rake time:zones:local
rake time:zones:us
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |