ActiveRecord日期格式

Mon*_*ong 16 activerecord ruby-on-rails date-format

我在Rails应用程序中遇到了日期格式的烦恼.

我在视图中有一个日期字段,我希望将其格式化为dd/mm/yy.这是用户期望输入日期的方式,而datepicker控件使用此格式.

但是,Active Record似乎期待mm/dd/yy.

如果我输入01/03/2010,则会2010年1月3日进入.

如果我输入25/03/2010,则会将其置为空值.

如何让ActiveRecord期待Her Majesties日期格式?

Mar*_*rth 20

Rails的DateTime尝试自动检测格式.它会检测以下格式:mm/dd/yydd-mm-yyyyyy-mm-ddyyyy/mm/dd.你可以修补猴子DateTime.parse,但我宁愿把这个问题移到你的应用程序的视图中.

我总是建议yyyy-mm-dd [hh:mm:ss]用作日期的字符串表示.如果DatePicker支持多种日期格式,请查看它的文档.

例如,jQuery日期选择器覆盖了dateFormat(对于发送到服务器的数据,将其设置为yyyy-mm-dd)以及altFormat(对于用户看到的输入,将其设置为dd/mm/yyyy).

  • 嗯..是的我可以在视图中更改格式.我希望不要.让我感到惊讶的是ActiveRecord无法像这样进行本地化. (3认同)

Har*_*tty 12

添加一个名为rails_defaults.rbconfig\initializers目录; 以下行:

Date::DATE_FORMATS[:default] = '%d/%m/%Y'
Time::DATE_FORMATS[:default]= '%d/%m/%Y %H:%M:%S'
Run Code Online (Sandbox Code Playgroud)

重新启动服务器,你很高兴.