所以我在我看来创建:
<%=date=Date.today%>
如何获取当月的名称?我试图做某事......
<%= DATE::ABBR_MONTHNAMES(date.month)%>
但没有成功。我一直收到错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES
如何初始化常量或是否有其他方法可以使该名称超出日期格式?
非常感谢任何答案!
答案 0 :(得分:93)
参考this
<% @date = Date.today %>
<%= @date.strftime("%B")%>
如果
@date >> Fri, 11 Jun 2010
然后
@date.strftime("%B") >> "June"
答案 1 :(得分:27)
如果您只关注月份名称,则rails提供的Date::MONTHNAMES
常量是最简单的解决方案:
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"
]
答案 2 :(得分:8)
如果您想要本地化的月份名称,请尝试:
I18n.t('date.month_names')[date.month]
示例:
I18n.t('date.month_names')[12] #=> "Dezembro"
答案 3 :(得分:4)
如果您需要重复使用特定的自定义日期/时间格式,则可以扩展ActiveSupport日期/时间帮助程序。
e.g。如果在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
答案 4 :(得分:2)
选择您想要的内容
Date.parse('5-jan-2017').strftime('%B')
结果:
=&GT; &#34; 1&#34;
Date.parse('5-jan-2017').strftime('%b')
结果:
=&GT; &#34;扬&#34;
对于大多数与日期相关的问题,请参阅此链接 http://www.foragoodstrftime.com/
答案 5 :(得分:0)
这应该对您有帮助 https://www.shortcutfoo.com/app/dojos/ruby-dates/cheatsheet
Date::MONTHNAMES
Date::DAYNAMES