Ответ 1
Ref this
<% @date = Date.today %>
<%= @date.strftime("%B")%>
если
@date >> Fri, 11 Jun 2010
затем
@date.strftime("%B") >> "June"
поэтому я создаю на мой взгляд:
<%=date=Date.today%>
Как получить имя месяца из даты? Я пытался сделать что-то вроде
<%= DATE::ABBR_MONTHNAMES(date.month)%>
Но без успеха. Я продолжаю получать ошибку: неинициализированная константа ActionView::Base::CompiledTemplates::MONTHNAMES
Как инициализировать константу или есть ли другой способ получить имя из формата Date?
будет очень благодарен за любые ответы!
Ref this
<% @date = Date.today %>
<%= @date.strftime("%B")%>
если
@date >> Fri, 11 Jun 2010
затем
@date.strftime("%B") >> "June"
Если вы ищете только имя месяца, константа 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"
]
Если у вас есть определенный пользовательский формат даты и времени, который вам нужно использовать повторно, вы можете продлить помощник даты и времени 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
Выберите, что вы хотите
Date.parse('5-jan-2017').strftime('%B')
Результат:
= > "Январь"
Date.parse('5-jan-2017').strftime('%b')
Результат:
= > "Ян"
Для большей части ваших дальнейших вопросов, связанных с датой, обратитесь к этой ссылке http://www.foragoodstrftime.com/