【问题标题】:Rails UTC displayed date to customRails UTC显示日期自定义
【发布时间】:2012-12-17 11:11:27
【问题描述】:

我将这个发送到我的视图:

<%= @venue.eventdate %>

显示 UTC 日期时间。 例如2013-01-10 17:15:00 UTC

我找到了 this site for strftime command 并创建了一个自定义构建。 在我看来,我愚蠢地将它添加到我的对象的末尾:

<%= @venue.eventdate.strftime(%A, %e %B %Y at %l:%M %p) %>

例如(理想情况下)2013 年 1 月 3 日星期四凌晨 4:08

当然它没有用。有人知道如何以简单的方式进行正确的转换吗?

【问题讨论】:

  • 不知道这是否是您问题的根源,但您忘记了双引号:&lt;%= @venue.eventdate.strftime("%A, %e %B %Y at %l:%M %p") %&gt;
  • @sparda 啊哈!非常感谢!是的,就是这样......它就像一个魅力

标签: ruby-on-rails ruby-on-rails-3 datetime time utc


【解决方案1】:

这通常由客户端处理,例如 JS,因为客户端更了解它自己的语言环境。

Convert UTC date time to local date time using JavaScript

如果你一心想做这个服务器端

Display local time in view

【讨论】:

    【解决方案2】:

    通常您可以创建自定义日期方法。首先,您在 config/initializers 中创建一个 date_formats.rb 文件,例如创建这样的时间格式:

    Time::DATE_FORMATS[:day_month_year] = "%A, %e %B %Y"
    

    并在“to_formatted_s(:day_month_year)”等视图文件中使用此方法

    <%= object.eventdate.to_formatted_s(:day_month_year)%> <%= object.created_at.strftime("%I:%M %p")%>
    

    添加 date_formats.rb 文件后不要忘记重启 Rails 服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 2014-12-05
      相关资源
      最近更新 更多