2012-06-25 4 views
3

Вот некоторые результаты:Нужна небольшая помощь в преобразовании формата даты в рубин

Date.today => Mon, 25 Jun 2012 
Date.today.to_formatted_s(:long_ordinal) => "June 25th, 2012" 
Date.today.strftime('%A %d, %B') => "Monday 25, June" 

Теперь мне нужно вывод в формате, а именно:

Monday 25th, June  or  Thrusday, 1st, October 

Проблема является to_formatted_s и STRFTIME применяются только на дату, и обе или они возвращают строку. Как я могу получить результат так, как мне нужно.

ответ

9

Вы можете использовать Date::DATE_FORMATS, чтобы добавить новый настроенный формат, и Integer.ordinalize, чтобы получить порядковый номер дня:

Date::DATE_FORMATS[:month_ordinal] = lambda { |date| 
    date.strftime("%A #{date.day.ordinalize}, %B") 
} 

>> Date.today.to_formatted_s(:month_ordinal) 
=> "Monday 25th, June" 
+0

Потрясающие ..;) Спасибо большое. –

 Смежные вопросы

  • Нет связанных вопросов^_^