我正在使用ActiveSupport的to_formatted_s。
正在做什么:
(User.first.birthday).to_formatted_s(:long_ordinal)打印
=> "February 28th, 1992 00:00" 为什么最后会有00:00?这是正常的吗?摆脱它的最好方法是什么?谢谢
发布于 2012-11-30 09:23:04
: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 s.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"保持它们有条理,并保持在一个地方。
发布于 2012-11-30 09:22:58
是的,这很正常,这不仅仅是一次约会。
(User.first.birthday).to_date.to_formatted_s(:long_ordinal)https://stackoverflow.com/questions/13637608
复制相似问题