代码之家  ›  专栏  ›  技术社区  ›  yii2__

yii2 gridview筛选日期

  •  1
  • yii2__  · 技术社区  · 7 年前

    我的gridview里有个约会。我想用这种格式打 "29.11.2018" . 但在我的表格中,日期是格式 "2018-11-29" . 所以它不会过滤。

    [
    'attribute'=>'enddate',
    'format' => 'date',
    'label' => 'Ablaufdatum'
    ],
    

    我的搜索模型:

     $query->andFilterWhere(['like', 'user', $this->user])
          ->andFilterWhere(['like', 'enddate', $this->enddate]);
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Muhammad Omer Aslam    7 年前

    你可以用 mysql:DATE_FORMAT() 及 php:date() 为了确保它总是以相同的格式进行比较,您可以使用 = , > , < , >= , <= like

    更改下面的代码

    $query->andFilterWhere(['like', 'user', $this->user])
          ->andFilterWhere(['like', 'enddate', $this->enddate]);
    

    到

    $query->andFilterWhere(['like', 'user', $this->user])
        ->andFilterWhere(
            [
                '=',
                new \yii\db\Expression('DATE_FORMAT(enddate, "%d.%m.%Y")'),
                date('d.m.Y', strtotime($this->enddate)),
            ]
        );
    
        2
  •  0
  •   Naveed    7 年前

    在筛选之前,您可以尝试以下操作:

    date( 'Y-m-d', strtotime( $this->enddate ) );
    
    推荐文章