我的 GridView 中有一个日期。我想以 "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]);
最佳答案
您可以使用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)),
]
);
关于php - yii2 gridview过滤日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53541201/