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_sstrftimeが日付にのみ適用され、両方または両方が文字列を返すことです。どうすれば必要な方法で出力を取得できますか?

4

1 に答える 1

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"
于 2012-06-25T06:39:02.657 に答える