5

是否有简单的方法可以从默认 ISO 格式 (yyyy-mm-dd) 更改 ActiveAdmin 日期过滤器显示格式?

4

4 回答 4

9

您可以为 datepicker 提供额外的选项,而不是覆盖 js,如下所示:

 = f.input :my_date, as: :datepicker, datepicker_options: { dateFormat: "mm/dd/yy" }
于 2014-12-22T19:27:27.280 回答
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

于 2015-12-31T08:46:44.153 回答
0

就在这里。我用js设置日期时间选择器对象的选项来做到这一点

$(document).ready(function() {
  $(".datepicker").datepicker( "option", "dateFormat", 'D, d M yy' );

});

如果这样做,输入值将如下所示

Wed, 28 Nov 2012

http://docs.jquery.com/UI/Datepicker/formatDate这里是关于支持格式的手册

于 2012-11-07T09:16:18.000 回答
0

对于活动管理员过滤器..

在 Active Admin gem 中,文件:app/assets/javascripts/active_admin/pages/application.js.coffee,您将看到:

$ ->
  $(document).on 'focus', '.datepicker:not(.hasDatepicker)', ->
    $(@).datepicker dateFormat: 'yy-mm-dd'

例如,您可能需要修改 on focus 事件(文件:app/assets/javascripts/active_admin.js)。

$(document).ready(function(){
  $(document).on('focus', '.datepicker.hasDatepicker', function() {
    $(this).datepicker( "option", "dateFormat", "mm-dd-yy");
  });
});

或者也许删除事件并重新初始化日期选择器,例如:

$(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'});

});
于 2014-05-23T15:37:32.717 回答