Php yII2:如何在Gridview中进行日期筛选

Php yII2:如何在Gridview中进行日期筛选,php,gridview,filter,yii2,Php,Gridview,Filter,Yii2,我可以过滤任何字段,包括相关字段中的列,但我想知道如何过滤日期字段 我遇到的一个解决方案是过滤器的日期选择器,我还没有对此进行测试,但我的要求略有不同 例如,我复制了gridview中的datetime列,并将其格式化为 [ 'attribute'=>'discharge_date', 'format'=>['DateTime','php:M'] ], 因此,该列仅显示月份。该列正确显示月份 现在我想在这个专栏上按月份筛选。 如有任何建议,将不胜感激。 谢谢 我确实

我可以过滤任何字段,包括相关字段中的列,但我想知道如何过滤日期字段

我遇到的一个解决方案是过滤器的日期选择器,我还没有对此进行测试,但我的要求略有不同

例如,我复制了gridview中的
datetime
列,并将其格式化为

[
    'attribute'=>'discharge_date',
    'format'=>['DateTime','php:M']
],
因此,该列仅显示月份。该列正确显示月份

现在我想在这个专栏上按月份筛选。 如有任何建议,将不胜感激。 谢谢

我确实试过这样做

[
     'attribute'=>'discharge_date',
     'value'=>'discharge_date',
     'filter' => ['2015-01'=>'Jan','2015-02'=>'Feb','2015-03'=>'Mar'],
     'format'=>['DateTime','php:M']

  ],
这很好,但这一年是硬编码的,这是我不想要的。 我知道这不是正确的方法。
谢谢

您可以使用kartik日期范围选择器:

1.查看以下内容:

实施

1.在您看来:使用kartik\daterange\DateRangePicker

2.如果您使用的是栅格视图

  • 在属性中添加此代码

    [
     'attribute'=>'Date',
     'label'=>'Date',
     'format'=>'text',
     'filter'=> '<div class="drp-container input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>'.
      DateRangePicker::widget([
         'name'  => 'ItemOrderSearch[created_at]',
         'pluginOptions'=>[ 
                  'locale'=>[
                  'separator'=>'to',
                  ],
          'opens'=>'right'
              ] 
          ]) . '</div>',
    'content'=>function($data){
               return Yii::$app->formatter->asDatetime($data['created_at'], "php:d-M-Y");
       }
    ]
    

    4.将其传递给您的模型并执行查询

    问题是???@soju-问题是我如何在GridViews中创建一个下拉过滤器数月那么你尝试了什么???@soju-问题更新了。
        $date = explode( 'to', $item['date']) // Temporary store into variable as an array
        // $date[0]  =>  12/07/2015 - from date
        // $date[1]  =>  12/10/2015 - to date