著者: Bailang 出典: http://www.manks.top/article/yii2_gridview_dateformat_search
この記事の著作権は著者に帰属します。転載は歓迎されますが、この声明は著者の同意なしに保持されなければなりません。記事ページの接続の目立つ位置に表示する必要があります。そうでない場合、当社は法的責任を追及する権利を留保します。
日付の書式設定、まずレンダリングを見てみましょう
これについてはケースバイケースで説明します
1. データベースフィールド created_at に保存されている時刻形式が date または datetime の場合、非常に簡単です。グリッドビューに直接出力できます。上の図の右側に示すように、created_at フィールドだけで十分です
2. データベースに保存されているタイムスタンプのタイプが図の左側にある場合。上記では、次のように出力する必要があります
[ 'attribute' => 'created_at', 'value' => function ($model) { return date('Y-m-d H:i:s', $model->created_at); }, ], [ 'attribute' => 'created_at', 'format' => ['date', 'Y-m-d H:i:s'], ],
上記は2つの方法を示しています。任意の形式で出力できます。ただし、検索メカニズムを実装する場合、データベースに日時型が格納されている場合は、dataProvider を変更する必要がなく、非常に便利です
コードは次のとおりです
$query->andFilterWhere([ // ...... 'created_at' => $this->created_at, // ...... ]);
データベースにタイムスタンプが格納されている場合は、
いいえ。最初のステップでは、以下の図に示すように対応するルールを変更します
2 番目のステップでは、dataProvider を変更します。次のコードを参照できます
//我们搜索输入框中输入的格式一般是 2016-01-01 而非时间戳 //输出2016-01-01无非是想搜索这一天的数据,因此代码如下 if ($this->created_at) { $createdAt = strtotime($this->created_at); $createdAtEnd = $createdAt + 24*3600; $query->andWhere("created_at >= {$createdAt} AND created_at <= {$createdAtEnd}"); }
これは簡単な概要です。datetime タイプを使用することをお勧めします, 個人的には、タイムスタンプを保存するのは非常に面倒だと思います。良い提案がある場合は、下にメッセージを残してください。一緒に議論できます。
上記では、yii2 GridView の日付の書式設定と日付の検索可能化の事例を、GRIDVIEW の内容も含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。