[Solved] Yii2 GridView filter date by year


Maybe you are looking for something like this:

add in to your model

public static function getYearsList()
{
    $years = (new Query())->select('DISTINCT YEAR(`birthday`) as years')->from('{{%yourTable}}')->column();
    return array_combine($years, $years);
}

and then in gridview

[
    'attribute' => 'birthday',
    'filter' => YourModel::getYearsList(),
]

And then in your search model add andFilterWhere() to compare birthday with year. It can look like this:

$query->andFilterWhere('YEAR(`birthday`)' => $year);

3

solved Yii2 GridView filter date by year