我正在使用Kartik GridView,我的日期列设置如下
[
'attribute'=>'created_date',
'value' => function ($model, $index, $widget) {
return Yii::$app->formatter->asDate($model->created_date);
},
'format' => ['date', 'php:d.m.Y'],
'filterType' => GridView::FILTER_DATE,
'filterWidgetOptions' => [
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
'todayHighlight' => true,
]
],
'width' => '160px',
'hAlign' => 'center',
],
搜索模型
[['created_date'], 'safe'],
$query->andFilterWhere([
'links_id' => $this->links_id,
'modified_date' => $this->modified_date,
'created_date' => $this->created_date,
]);
created_date 是创建记录时自动生成的数据库中的列,其格式为 2015-12-16 13:42:09.425618
.
虽然日期选择器工作,我得到SQL错误:
The SQL being executed was: SELECT COUNT(*) FROM "links" LEFT JOIN "countries" ON "links"."country" = "countries"."country" WHERE "created_date"='2015-12-15'
那么,如何使用Yii2 kartik日期选择器正确过滤unix时间戳?
3 回答
好的,谢谢@ck_arjun . 我想通了 . 所以在搜索模型中,代码应该如下所示
这样您就可以用自己的格式传递日期来过滤unix数据库列 .
在网格视图中尝试此操作:
在返回$ dataProvider之前的搜索模型中
插入代码如下:
updated_normal - 搜索模型中的帮助字段(yyyy-mm-dd)
int的工作是有保障的