当前位置: 首页 > 编程笔记 >

浅析Yii2 GridView 日期格式化并实现日期可搜索教程

袁翔
2023-03-14
本文向大家介绍浅析Yii2 GridView 日期格式化并实现日期可搜索教程,包括了浅析Yii2 GridView 日期格式化并实现日期可搜索教程的使用技巧和注意事项,需要的朋友参考一下

先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读:

这个我们分情况讨论

1、如果你的数据库字段created_at存的时间格式是date或者datetime,那很简单,gridview中直接输出该字段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'],
],

以上展示了两种方式进行格式输出,都可以。但是,如果想要实现搜索的机制,如果你的数据库存入的是datetime型,很方便,dataProvider不用做修改,

代码如下

$query->andFilterWhere([
// ......
'created_at' => $this->created_at,
// ......
]);

如果你的数据库存入的是时间戳。

第一步,修改对应规则如下图所示

第二步,修改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类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我想在获得,和。 这是一条漫长的道路: 我的问题:如何将最后一部分压缩到函数? 我想归档的内容: p/s:的含义与标准数字格式字符串相同。像C#语法:

  • 我正在尝试将DatePicker日期格式化为简单的数据格式(“yyyy-MM-dd HH: mm: ss Z”)。有人告诉我,我需要使用简单的数据格式将其解析为日期对象-简单的数据格式(“yyyy-MM-dd”),然后将其格式化为我需要的内容,如下所示。但是,我在尝试捕捉块中收到错误“重复局部变量eDate”。任何专家都可以查看我的代码并提出建议吗? 已更新

  • 本文向大家介绍php格式化日期实例分析,包括了php格式化日期实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php格式化日期的方法。分享给大家供大家参考。 具体实现代码如下: 希望本文所述对大家的PHP程序设计有所帮助。

  • 问题内容: 如何实现java日期格式化? 问题答案: 使用(或如果字符串恰巧包含时区部分)将特定模式中的解析为。 使用(或)以某种格式将 格式化为String。 或者,当你尚未使用Java 8时,请使用将String特定模式中的解析为Date。 用于将格式化Date为String特定模式。 格式区分大小写,因此请使用MM而不是mm(这是分钟),而yyyy作为参考,你可以使用以下速查表。

  • 我有一个数组,返回以下日期时间: 如何更改日期为格式Laravel使用碳? 目前它返回一个错误

  • 主要内容:DateFormat 类,SimpleDateFormat 类格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“Fri May 18 15:46:24 CST2016” 格式转换为 “2016-5-18 15:46:24 星期五”的格式。 在 Java 中,可以使用 DateFormat 类和 SimpleDateFormat 类来格式化日期,下面详细介绍这两个格式化日期类的使用。 DateFormat 类 DateFormat 是日