活动管理员日期过滤日期格式自定义
有没有简单的方法可以从默认的ISO格式(yyyy-mm-dd)更改ActiveAdmin日期filter显示格式?
而不是覆盖js,你可以为datepicker提供额外的选项,如下所示:
= f.input :my_date, as: :datepicker, datepicker_options: { dateFormat: "mm/dd/yy" }
我修复的方式是这样的:
$ -> # reset format $('.datepicker:not(.hasDatepicker)').each -> if $(@).val().length > 0 p = $(@).val().split('-') $(@).val("#{p[2]}-#{p[1]}-#{p[0]}") # change format $(document).on 'focus', '.datepicker:not(.hasDatepicker)', -> $(@).datepicker dateFormat: 'dd-mm-yy'
因此,首先将值从yyyy-mm-dd重置为yyyy-mm-dd,而不是在拾取器上设置正确的格式。
希望这有助于某人。
这适用于ActiveAdmin pre 1和just_datetime_picker gem
就在这里。 我用js设置datetime选择器对象的选项
$(document).ready(function() { $(".datepicker").datepicker( "option", "dateFormat", 'D, d M yy' ); });
如果你这样做,输入值将是如下
Wed, 28 Nov 2012
http://docs.jquery.com/UI/Datepicker/formatDate这里是关于支持的格式的手册
对于Active Adminfilter..
在Active Admin gem中,文件:app / assets / javascripts / active_admin / pages / application.js.coffee,您将看到:
$ -> $(document).on 'focus', '.datepicker:not(.hasDatepicker)', -> $(@).datepicker dateFormat: 'yy-mm-dd'
您可能必须修改焦点事件,例如(file:app / assets / javascripts / active_admin.js)。
$(document).ready(function(){ $(document).on('focus', '.datepicker.hasDatepicker', function() { $(this).datepicker( "option", "dateFormat", "mm-dd-yy"); }); });
或者可能删除事件并重新初始化datepickers,例如:
$(document).ready(function(){ // remove existing on focus events $._data( $(document)[0], 'events').focusin = null; // add new datepicker with format $('.datepicker').datepicker({dateFormat: 'mm-dd-yy'}); });