是否有简单的方法可以从默认的ISO格式(yyyy-mm-dd)更改ActiveAdmin日期过滤器显示格式?
答案 0 :(得分:8)
不是覆盖js,而是可以为datepicker提供额外的选项,如下所示:
= f.input :my_date, as: :datepicker, datepicker_options: { dateFormat: "mm/dd/yy" }
答案 1 :(得分:1)
我修复的方式是这样的:
$ ->
# 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
答案 2 :(得分:0)
是的,有。我使用js
设置datetime选择器对象的选项$(document).ready(function() {
$(".datepicker").datepicker( "option", "dateFormat", 'D, d M yy' );
});
如果这样做,输入值将类似于
Wed, 28 Nov 2012
http://docs.jquery.com/UI/Datepicker/formatDate这里是关于支持格式的手册
答案 3 :(得分:0)
适用于Active Admin过滤器..
在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'});
});