0

我的数据库中有一行以以下格式显示日期:2012-04-26. 假设我采用该值并将其存储在变量@date中。我怎样才能将这种格式更改为 2012 年 4 月 26 日,或者甚至是 4 月 26 日?

4

4 回答 4

2

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

示例用法:

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

于 2012-04-30T09:52:24.750 回答
0

你应该定义一个辅助方法,这样你就可以保持你的视图更干净。像这样做:

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

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

那么在您看来,您只需执行以下操作:

<%= formatted_date(@date) %>
于 2012-04-30T13:42:43.830 回答
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) %>
于 2012-04-30T14:04:54.370 回答
0

您不必担心 ORM 系统如何在数据库中序列化和反序列化日期对象,以及它们以什么格式存储在那里。

您只需要知道如何将您的Date对象转换为所需格式的字符串。这是类似strftime其他方法有用的地方。

于 2012-04-30T10:02:10.020 回答