ActiveSupport の to_formatted_s を使用しています。
やっている:
(User.first.birthday).to_formatted_s(:long_ordinal)
版画
=> "February 28th, 1992 00:00"
最後に0時があるのはなぜですか?これは正常ですか?それを取り除くための最良の方法は何ですか? ありがとう
ActiveSupport の to_formatted_s を使用しています。
やっている:
(User.first.birthday).to_formatted_s(:long_ordinal)
版画
=> "February 28th, 1992 00:00"
最後に0時があるのはなぜですか?これは正常ですか?それを取り除くための最良の方法は何ですか? ありがとう
:long_ordinalには時間を含みます。
ファイルの先頭近くにあるactivesupport-3.2.8/lib / active_support / core_ext / time/conversions.rbを参照してください。
:long_ordinal => lambda { |time|
time.strftime("%B #{ActiveSupport::Inflector.ordinalize(time.day)}, %Y %H:%M") },
それを取り除くには、次のように独自のフォーマットを定義します。
Time::DATE_FORMATS[:my_long_ordinal] = lambda { |time|
time.strftime("%B #{ActiveSupport::Inflector.ordinalize(time.day)}, %Y") }
私はこれらの種類のものを次のようにconfig/initalizers /time_formats.rbに入れました:
Date::DATE_FORMATS[:month_year] = Time::DATE_FORMATS[:month_year] = "%B %Y"
Date::DATE_FORMATS[:mon_yr] = Time::DATE_FORMATS[:mon_yr] = "%b '%y"
Date::DATE_FORMATS[:yyyymmdd] = Time::DATE_FORMATS[:yyyymmdd] = "%Y-%m-%d"
それらを整理して1か所に保管します。
はい、それは正常です、それは単なる日付ではありません。
(User.first.birthday).to_date.to_formatted_s(:long_ordinal)