此代码返回预定职位列表(姓名,日期时间)。
$criteria = new CDbCriteria;
$criteria->select='name, datetime';
$criteria->condition='datetime>:datetime';
$criteria->params=array(':datetime'=>date('Y-m-d H:i:s'));
$criteria->order='DATE_FORMAT(datetime, "%d/%m/%Y") ASC';
$models = Posts::model()->findAll($criteria);
我想发布同一日期d / m / Y的GROUP帖子,然后只代表每个的H / i / s,它可能吗?
像:
Array
(
[2000/10/10] => Array
(
[1] => Array
(
[name] = Post 1
[time] = 12:10
)
[2] => Array
(
[name] = Post 2
[time] = 16:20
)
[3] => Array
(
[name] = Post 3
[time] = 20:30
)
)
[2000/10/11] => Array
(
[6] => Array
(
[name] = Post 6
[time] = 10:00
)
)
)
答案 0 :(得分:1)
获取时间你应该选择
$criteria->select='name, DATE_FORMAT(datetime, "%h:%i") as time';
$criteria->group='date(datetime)';
获取所需的o / p使用php逻辑
答案 1 :(得分:0)
我不知道你的结果究竟如何,但当然你可以做到。 尝试这样的事情:
$array[$models["date"]][]["name"] = $models["name"];
$array[$models["date"]][]["time"] = $models["time"];
答案 2 :(得分:0)
有一个简单的扩展来处理这个,它叫XDateView(免责声明:我是作者),它专门用于显示按日期分组的记录。如果您需要更高级/可配置的东西,您可以使用另一个名为GroupGridView的优秀扩展程序,它具有更多功能,并允许您进行更多自定义和控制。