我如何获得在Rails的ruby的月份名称?

所以我在我看来创造:

<%=date=Date.today%> 

我如何得到当月的名字? 我正在努力做

  <%= DATE::ABBR_MONTHNAMES(date.month)%> 

但没有成功。 我不断收到一个错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES

我如何初始化常量,或者有没有其他的方式来获得date格式的名称?

将不胜感激任何答案!

请参考

 <% @date = Date.today %> <%= @date.strftime("%B")%> 

如果

 @date >> Fri, 11 Jun 2010 

然后

 @date.strftime("%B") >> "June" 

如果您只是查看月份名称,则由rails提供的Date::MONTHNAMES常量是您最简单的解决scheme:

  Date::MONTHNAMES = [ [ 0] nil, [ 1] "January", [ 2] "February", [ 3] "March", [ 4] "April", [ 5] "May", [ 6] "June", [ 7] "July", [ 8] "August", [ 9] "September", [10] "October", [11] "November", [12] "December" ] 

如果您需要重复使用特定的自定义date/时间格式,则可以扩展ActiveSupportdate/时间帮助程序。

例如,如果你在config / environment.rb中定义了以下内容

 ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:full_english => "%A %B %d, %Y at %I:%M %p") 

那么当你在你的视图中调用Time.now.to_s(:full_english) ,你会得到如下的东西:

 "Friday June 11, 2010 at 12:53 PM" 

Ruby的strftime方法在http://apidock.com/ruby/Time/strftime有详细logging

select你想要的

  Date.parse('5-jan-2017').strftime('%B') 

结果:

=>“一月”

 Date.parse('5-jan-2017').strftime('%b') 

结果:

>>“Jan”

对于大部分date相关的问题,请参阅http://www.foragoodstrftime.com/