,所以我创造我的观点:如何在Rails的ruby中获取月份的名称?
<%=date=Date.today%>
我要如何月份出了名的日期?我试图做的像
<%= DATE::ABBR_MONTHNAMES(date.month)%>
但没有成功。我不断收到错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES
如何初始化常量或是否有任何其他方式从日期格式中获取名称?
将非常感谢任何答案!
,所以我创造我的观点:如何在Rails的ruby中获取月份的名称?
<%=date=Date.today%>
我要如何月份出了名的日期?我试图做的像
<%= DATE::ABBR_MONTHNAMES(date.month)%>
但没有成功。我不断收到错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES
如何初始化常量或是否有任何其他方式从日期格式中获取名称?
将非常感谢任何答案!
参考this
<% @date = Date.today %>
<%= @date.strftime("%B")%>
如果
@date >> Fri, 11 Jun 2010
然后
@date.strftime("%B") >> "June"
如果你有,你需要重复使用一个特定的自定义日期/时间格式,那么你可以延长ActiveSupport日期/时间助手。
例如如果你定义在你的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
查看日期/时间转换器to_formatted_s。这允许你定义日期格式(比如':month_only')并使用date.to_formatted_s(:month_only),这样你可以最大限度地重用你的strftime使用。 – 2010-06-11 15:03:40
如果您只是看月份名称,轨道提供的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"
]
选择你想要什么
Date.parse('5-jan-2017').strftime('%B')
结果:
=> "January"
Date.parse('5-jan-2017').strftime('%b')
结果:
=> "Jan"
对于大部分的进一步日期相关的问题,请参阅此链接 http://www.foragoodstrftime.com/
如果你想有一个本地化的月份名称,请尝试:
I18n.t('date.month_names')[date]
例子:
I18n.t('date.month_names')[12] #=> "Dezembro"
我希望有'Date.today.month_name'。 – Chloe 2017-06-12 01:58:56
@Chloe: class Date; def month_name; self.strftime( “%B”);结束;结束 – MustModify 2018-02-02 17:46:00