【问题标题】:yii2 gridview filter dateyii2 gridview过滤日期
【发布时间】:2018-11-29 14:25:58
【问题描述】:

我的网格视图中有一个日期。我想以"29.11.2018" 的格式输入它。但在我的表格中,日期格式为"2018-11-29"。 所以它不过滤。 我的 index.php:

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

我的搜索模型:

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

【问题讨论】:

    标签: php date gridview filter yii2


    【解决方案1】:

    您可以使用mysql:DATE_FORMAT() AND 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】:

      你可以在过滤之前尝试这样的事情:

      date( 'Y-m-d', strtotime( $this->enddate ) );
      

      【讨论】:

        猜你喜欢
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 2019-09-21
        • 1970-01-01
        • 2020-05-23
        • 2020-05-19
        相关资源
        最近更新 更多