ruby-on-rails - to_formatted_s(:long_ordinal) returning 00:00 at the end

标签 ruby-on-rails ruby activerecord

我正在使用 ActiveSupport 的 to_formatted_s。

正在做:

(User.first.birthday).to_formatted_s(:long_ordinal)

打印

 => "February 28th, 1992 00:00" 

为什么最后是 00:00?这是正常的吗?摆脱它的最佳方法是什么? 谢谢

最佳答案

: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"

使它们井井有条并集中在一个地方。

关于ruby-on-rails - to_formatted_s(:long_ordinal) returning 00:00 at the end,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637608/

相关文章:

ruby-on-rails - 带有轮胎 : edgeNgram with multiple words 的 Elasticsearch

ruby-on-rails - rake spec 不使用 rails 环境

ruby-on-rails - 默认情况下,Heroku 是否自动缓存 Rails Controller 操作?

Ruby 父类(super class)创建 Stack 错误

ruby - 在 Ruby 中删除数组中的 nil 和空白字符串

ruby-on-rails - 如何在 Rails 中预览 delete_all 或 destroy_all 查询

ruby-on-rails - 在 Rails 中记录长时间运行的事务

javascript - 在 jquery 函数中引用 rails 图像

ruby - 匹配两个字符之间有换行符的字符串

database - 与 Play Framework 一起使用时的 Scala ActiveRecord 性能问题