使用中间人打印从yaml到ruby的日期

时间:2015-03-29 17:29:42

标签: ruby date yaml middleman

我正在使用Middleman制作漫画收藏应用程序。

我可以从YAML文件中获取不同的信息并将其呈现在.erb文件中。

现在,我使用yaml创建了一个日期:

date: 1977-08-01

我尝试在网上浏览如何以不同的格式呈现它,但我找不到任何东西......

每个例子,我的yaml文档中都有一个标题字段,如下所示:

title: "Uncanny X-Men"

所以我使用这个在我的erb文档中渲染它:

<%= comic["title"] %>

但是,如何打印出我约会的月份?无法找到任何类型的信息......我确实得到如何在ruby或yaml中使用日期的不同方面,但不知道如何将日期从yaml呈现为ruby :(

谢谢!

2 个答案:

答案 0 :(得分:4)

您需要将YAML文件中的date值解析为Ruby日期类,首先确保在YAML文件中用引号括起日期值:

date: '1977-08-01'

然后解析:

<%= Date.parse(comic["date"]) %>

并获得您添加.month的月份 像这样:

<%= Date.parse(comic["date"]).month %>

如果您希望对月份的方式进行更多自定义,则会为您提供8号码{@ 3}},如果是这样,您甚至不需要使用{{ 1}}。

理想情况下,你可以在.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

我希望有所帮助。

答案 1 :(得分:1)

首先,使用以下内容检查数据类型:comic['date'].class

如果它是一个日期,那么您可以使用:strftime来格式化您想要的日期!

如果不是日期,请告诉我们,我们会解释转换选项