PHPackages                             silentlun/yii2-daterangepicker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. silentlun/yii2-daterangepicker

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

silentlun/yii2-daterangepicker
==============================

DateRangePicker extension for YII2

1.2(3y ago)025BSD-3-ClausePHP

Since Mar 28Pushed 3y ago1 watchersCompare

[ Source](https://github.com/silentlun/yii2-daterangepicker)[ Packagist](https://packagist.org/packages/silentlun/yii2-daterangepicker)[ RSS](/packages/silentlun-yii2-daterangepicker/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

silentlun\\yii2-daterangepicker
===============================

[](#silentlunyii2-daterangepicker)

DateRangePicker extension for YII2

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer require --prefer-dist silentlun/yii2-daterangepicker "*"

```

or add

```
"silentlun/yii2-daterangepicker": "*"

```

to the require section of your `composer.json` file.

Usage
-----

[](#usage)

Once the extension is installed, simply use it in your code by :

```
use silentlun\daterange\DateRangePicker;
echo DateRangePicker::widget([
    'name' => 'daterange',
    'attribute' => 'datetime_range',
    'pluginOptions' => [
        'timePicker' => true,
        'locale' => [
            'format' => 'YYYY-MM-DD'
        ]
    ]
]);
```

or using on model

```
use silentlun\daterange\DateRangePicker;
echo DateRangePicker::widget([
    'model' => $model,
    'attribute' => 'datetime_range',
    'pluginOptions' => [
        'timePicker' => true,
        'locale' => [
            'format'=>'YYYY-MM-DD'
        ]
    ]
]);
```

or using seperate start/end attributes on model

```
use silentlun\daterange\DateRangePicker;
echo DateRangePicker::widget([
    'model'=>$model,
    'attribute'=>'datetime_range',
    'startAttribute'=>'datetime_start',
    'endAttribute'=>'datetime_end',
    'pluginOptions'=>[
        'timePicker'=>true,
        'timePickerIncrement'=>30,
        'locale'=>[
            'format'=>'YYYY-MM-DD'
        ]
    ]
]);
```

DateRangeBehavior :

```
use silentlun\daterange\DateRangeBehavior;

class UserSearch extends User
{
    public $createTimeRange;
    public $createTimeStart;
    public $createTimeEnd;

    public function behaviors()
    {
        return [
            [
                'class' => DateRangeBehavior::className(),
                'attribute' => 'createTimeRange',
                'dateStartAttribute' => 'createTimeStart',
                'dateEndAttribute' => 'createTimeEnd',
            ]
        ];
    }

    public function rules()
    {
        return [
            // ...
            [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'],
        ];
    }

    public function search($params)
    {
        $query = User::find();
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        $this->load($params);
        if (!$this->validate()) {
            $query->where('0=1');
            return $dataProvider;
        }

        $query->andFilterWhere(['>=', 'createdAt', $this->createTimeStart])
              ->andFilterWhere(['
