nec*_*ker 46 ruby ruby-on-rails
所以我在我的视图中创建:
<%=date=Date.today%>
Run Code Online (Sandbox Code Playgroud)
我如何获得该日期的名称?我试着做某事
<%= DATE::ABBR_MONTHNAMES(date.month)%>
Run Code Online (Sandbox Code Playgroud)
但没有成功.我不断收到错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES
我如何初始化常量或是否有任何其他方法来获取日期格式的名称?
非常感谢任何答案!
Sal*_*lil 98
参考这个
<% @date = Date.today %>
<%= @date.strftime("%B")%>
Run Code Online (Sandbox Code Playgroud)
如果
@date >> Fri, 11 Jun 2010
Run Code Online (Sandbox Code Playgroud)
然后
@date.strftime("%B") >> "June"
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 28
如果您只关注月份名称,则Date::MONTHNAMESrails提供的常量是最简单的解决方案:
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"
]
Run Code Online (Sandbox Code Playgroud)
Rep*_*lês 10
如果您想要本地化的月份名称,请尝试:
I18n.t('date.month_names')[date.month]
Run Code Online (Sandbox Code Playgroud)
例:
I18n.t('date.month_names')[12] #=> "Dezembro"
Run Code Online (Sandbox Code Playgroud)
如果您有需要重复使用的特定自定义日期/时间格式,那么您可以扩展 ActiveSupport 日期/时间助手。
例如,如果您在 config/environment.rb 中定义以下内容
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:full_english => "%A %B %d, %Y at %I:%M %p")
Run Code Online (Sandbox Code Playgroud)
然后当你调用Time.now.to_s(:full_english)你的观点时,你会得到类似的东西:
"Friday June 11, 2010 at 12:53 PM"
Run Code Online (Sandbox Code Playgroud)
Ruby 的方法在http://apidock.com/ruby/Time/strftimestrftime中有详细记录
| 归档时间: |
|
| 查看次数: |
42195 次 |
| 最近记录: |