使用中间人将日期从 yaml 打印到 ruby
Print date from yaml to ruby using middleman
我正在使用 Middleman 制作漫画书 collection 应用。
我能够从 YAML 文件中获取不同的信息并将其呈现在 .erb 文件中。
现在,我像这样使用 yaml 创建了一个日期:
date: 1977-08-01
我试着在网上查看如何以不同的格式呈现它,但我找不到任何东西...
例如,我的 yaml 文档中有一个标题字段,如下所示:
title: "Uncanny X-Men"
所以我使用这个在我的 erb 文档中呈现它:
<%= comic["title"] %>
但是,比方说,我如何才能打印日期中的月份?无法找到任何类型的信息...我知道如何在 ruby 或 yaml 中使用日期的不同方面,但不知道如何将日期从 yaml 呈现为 ruby :(
谢谢!
首先,检查数据类型:comic['date'].class
如果是日期,那么您可以使用:strftime 根据需要设置日期格式!
如果不是日期,请告诉我们,我们将解释转换选项
您需要将 YAML 文件中的 date
值解析为 Ruby 日期 class,首先确保用引号将 YAML 文件中的日期值括起来,如下所示:
date: '1977-08-01'
然后解析:
<%= Date.parse(comic["date"]) %>
并获得您要添加的月份 .month
像这样:
<%= Date.parse(comic["date"]).month %>
如果你想对你的月份进行更多自定义,你应该查看 strftime,这将为你提供数字 8
,如果是这样,你甚至不需要使用 .month
.
理想情况下,为了让事情变干,您可以在 config.rb
中创建一个助手
# Methods defined in the helpers block are available in templates
helpers do
def format_date(date_txt)
date = Date.parse(date_txt)
date.strftime("%B")
end
end
稍后您可以像这样在模板中调用它:
<%= format_date(comic["date"]) %>
希望对您有所帮助。
我正在使用 Middleman 制作漫画书 collection 应用。
我能够从 YAML 文件中获取不同的信息并将其呈现在 .erb 文件中。
现在,我像这样使用 yaml 创建了一个日期:
date: 1977-08-01
我试着在网上查看如何以不同的格式呈现它,但我找不到任何东西...
例如,我的 yaml 文档中有一个标题字段,如下所示:
title: "Uncanny X-Men"
所以我使用这个在我的 erb 文档中呈现它:
<%= comic["title"] %>
但是,比方说,我如何才能打印日期中的月份?无法找到任何类型的信息...我知道如何在 ruby 或 yaml 中使用日期的不同方面,但不知道如何将日期从 yaml 呈现为 ruby :(
谢谢!
首先,检查数据类型:comic['date'].class
如果是日期,那么您可以使用:strftime 根据需要设置日期格式!
如果不是日期,请告诉我们,我们将解释转换选项
您需要将 YAML 文件中的 date
值解析为 Ruby 日期 class,首先确保用引号将 YAML 文件中的日期值括起来,如下所示:
date: '1977-08-01'
然后解析:
<%= Date.parse(comic["date"]) %>
并获得您要添加的月份 .month
像这样:
<%= Date.parse(comic["date"]).month %>
如果你想对你的月份进行更多自定义,你应该查看 strftime,这将为你提供数字 8
,如果是这样,你甚至不需要使用 .month
.
理想情况下,为了让事情变干,您可以在 config.rb
# Methods defined in the helpers block are available in templates
helpers do
def format_date(date_txt)
date = Date.parse(date_txt)
date.strftime("%B")
end
end
稍后您可以像这样在模板中调用它:
<%= format_date(comic["date"]) %>
希望对您有所帮助。