daterange

Это старая версия документа!


В composer.json добавить

"kartik-v/yii2-date-range": "*"
В gridView добавить
[
    'attribute' => 'created_at',
    'label' => 'Дата создания',
    'value' => function ($model) {
        return date("d.m.Y", strtotime($model->created_at));
    },
    'filter' => kartik\daterange\DateRangePicker::widget([
        'model' => $searchModel,
        'attribute' => 'created_at',
        'convertFormat' => true,
        'useWithAddon' => true,
        'language' => 'ru',
        'hideInput' => true,
        'presetDropdown' => true,
        'startAttribute' => 'dateStart',
        'endAttribute' => 'dateEnd',
        'pluginOptions' => [
            'locale' => ['format' => 'd.m.Y', 'cancelLabel' => 'Очистить'],
            'separator' => '-',
            'opens' => 'left',
            'showDropdowns' => true
        ],
    ]),
],
    

В OrderSearch добавить:

<?php

class OrderSearch extends Order
{
    public $dateStart;
    public $dateEnd;

    public function rules()
    {
        return [
            [['dateStart', 'dateEnd'], 'safe']
        ];
    }

    public function search($params)
    {
        $query = Order::find();

        ........

        if (!$this->validate()) {
            return $dataProvider;
        }

        if (!empty($this->dateStart) AND !empty($this->dateEnd)) {


            $dateTimeStart = new \DateTime($this->dateStart);
            $dateTimeEnd = new \DateTime($this->dateEnd);


            $date_start = $dateTimeStart->format( 'Y-m-d 00:00:00');
            $date_end = $dateTimeEnd->format('Y-m-d 23:59:59');

            $query->andFilterWhere(['and',
                ['>=', 'created_at', $date_start],
                ['<=', 'created_at',  $date_end]
            ]);
        }


        ..........

        return $dataProvider;
    }
}

  • daterange.1642690333.txt.gz
  • Последнее изменение: 2022/01/20 16:52
  • (внешнее изменение)