gpt4 book ai didi

php - yII2:日期过滤器如何在 Gridview 中

转载 作者:可可西里 更新时间:2023-11-01 00:42:57 24 4
gpt4 key购买 nike

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

我遇到的一个解决方案是过滤器的日期选择器,我没有测试过这个,但我的要求有点不同。

例如,我在 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.检查一下:https://github.com/kartik-v/yii2-date-range

实现

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

2.如果你使用的是 GridView

  • 在属性中添加这段代码

    [
    '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");
    }
    ]

3.Pick date in your Controller parse date like

    $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

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

关于php - yII2:日期过滤器如何在 Gridview 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29169879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com