RoR更改数据库中显示的日期格式?

时间:2012-04-30 09:50:35

标签: ruby-on-rails ruby

我的数据库中有一行以下列格式显示日期:2012-04-26。假设我接受该值并将其存储在变量@date中。我怎样才能改变这种格式,比如04-26-2012,甚至4月26日?

4 个答案:

答案 0 :(得分:2)

涵盖您问题的精彩代码:http://snippets.dzone.com/posts/show/2255

使用示例:

<%= @date.strftime("%d-%m-%Y") %>

答案 1 :(得分:0)

它不应该让您担心,ORM系统如何将日期对象与数据库进行序列化和反序列化,以及它们以何种格式存储在那里。

您只需要知道如何将Date对象转换为所需格式的字符串。这就是strftimeother 等方法有用的地方。

答案 2 :(得分:0)

您应该定义一个帮助方法,以便您可以保持视图更清晰。这样做:

在帮助文件中,例如助手/ application_helper.rb

def formatted_date(date)
  date.strftime("%d-%m-%Y")
end

然后在您的视图中,您只需执行以下操作:

<%= formatted_date(@date) %>

答案 3 :(得分:0)

如果您使用的是Rails,则可能需要在视图中显示日期或时间。 为此,您可以简单地使用localize(或l)辅助方法。例如:

<%= l(@model.created_at) %>

只需在语言环境文件中定义默认格式和所需的任何其他格式(例如en.yml):

time: 
  formats: 
    default: "%d %b %Y, %H:%M"
    date_only: "%d %b %Y"

date: 
  formats: 
    default: "%d %b %Y"

格式语法与strftime使用的格式相同。

使用自定义格式:

<%= l(@model.created_at, :format => :date_only) %>