yii2 gridview 过滤日期
yii2 gridview filter date
我的 gridview 中有一个日期。我想以 "29.11.2018"
的格式输入它。但是在我的 table 中,日期的格式是 "2018-11-29"
。
所以它不过滤。
我的 index.php:
[
'attribute'=>'enddate',
'format' => 'date',
'label' => 'Ablaufdatum'
],
我的搜索模型:
$query->andFilterWhere(['like', 'user', $this->user])
->andFilterWhere(['like', 'enddate', $this->enddate]);
你可以在过滤之前尝试这样的事情:
date( 'Y-m-d', strtotime( $this->enddate ) );
您可以使用 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)),
]
);
我的 gridview 中有一个日期。我想以 "29.11.2018"
的格式输入它。但是在我的 table 中,日期的格式是 "2018-11-29"
。
所以它不过滤。
我的 index.php:
[
'attribute'=>'enddate',
'format' => 'date',
'label' => 'Ablaufdatum'
],
我的搜索模型:
$query->andFilterWhere(['like', 'user', $this->user])
->andFilterWhere(['like', 'enddate', $this->enddate]);
你可以在过滤之前尝试这样的事情:
date( 'Y-m-d', strtotime( $this->enddate ) );
您可以使用 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)),
]
);