ActiveRecord日期格式
我在Rails应用程序中遇到了日期格式的烦恼。
我在视图中有一个日期字段,我希望将其格式化为dd / mm / yy 。 这是用户期望输入日期的方式,而datepicker控件使用此格式。
但是,Active Record似乎期待mm / dd / yy 。
如果我输入01/03/2010 , 则会在2010年1月3日进入。
如果我输入25/03/2010 , 则会将其置为空 。
如何让ActiveRecord期待Her Majesties日期格式?
Rails的DateTime尝试自动检测格式。 它将检测以下格式: mm/dd/yy
或dd-mm-yy
或yyyy-mm-dd
或yyyy/mm/dd
。 你可以修补DateTime.parse
,但我宁愿把这个问题移到你的应用程序的视图中。
我总是建议使用yyyy-mm-dd [hh:mm:ss]
作为日期的字符串表示。 如果DatePicker支持多种日期格式,请查看它的文档。
例如,jQuery日期选择器覆盖了dateFormat
(对于发送到服务器的数据,将其设置为yyyy-mm-dd
)以及altFormat
(对于用户看到的输入,将其设置为dd/mm/yyyy
)。
将名为rails_defaults.rb
的文件添加到config\initializers
目录; 以下行:
Date::DATE_FORMATS[:default] = '%d/%m/%Y' Time::DATE_FORMATS[:default]= '%d/%m/%Y %H:%M:%S'
重新启动服务器,你很高兴。
class Date class << self def _parse_with_us_format(date, *args) if date =~ %r{^(\d+)/(\d+)/(\d+)$} _parse_without_us_format("#{$3.length == 2 ? "20#{$3}" : $3}-#{$1}-#{$2}", *args) else _parse_without_us_format(date, *args) end end alias_method_chain :_parse, :us_format end end
- ActiveRecord并使用reject方法
- 在Rails ActiveRecord中,连接在命名空间模型中不能与has_and_belongs_to_many一起使用
- 按Rails 3中的虚拟属性排序
- Rails – has_one关系:关联和非关联对象的范围
- 在分析由Mongoid事件生成的ActiveRecord对象时,Rspec测试随机失败
- Rails accepted_nested_attributes_for错误,请帮我发现它
- Activerecord多态机制如何用于MTI实现?
- 将SQL文件导入Rails 4 ActiveRecord db?
- Rails gem rails3-jquery-autocomplete:如何查询多个字段