如何拆分created_at返回的值?

时间:2013-07-31 17:10:14

标签: ruby-on-rails ruby split

我正在尝试拆分created_at方法返回的值。

我正在拍摄一个物体(item)并获取它的创建时间。我不想要整个结果,我只对日,月和年感兴趣。我怎样才能让它发挥作用?

<% @items_in_basket.each do |item| %>
<% splliter = item.created_at.split(" ") %> 
<% time = @splliter[0] %>

我得到了这个结果:

undefined method 'split' for Wed, 31 Jul 2013 16:44:37 UTC +00:00:Time

2 个答案:

答案 0 :(得分:5)

created_at会返回ActiveSupport::TimeWithZone的实例,您只需拨打daymonthyear即可获取该日期的部分内容。例如:

<% @items_in_basket.each do |item| %>
  Day: <%= item.created_at.day %>
  Month: <%= item.created_at.month %>
  Year: <%= item.created_at.year %>
<% end %>

这种方法比解析to_s返回的字符串格式更可靠。

答案 1 :(得分:1)

在使用字符串方法splithttp://ruby-doc.org/core-2.0/String.html#method-i-split)之前,请先尝试将日期转换为字符串。

<% splliter = item.created_at.to_s.split(" ") %> 

您收到该错误的原因是Timehttp://www.ruby-doc.org/core-2.0/Time.html)类没有split方法。