Mysql Group Yii按日期/时间记录活动记录

时间:2012-10-19 07:58:05

标签: php mysql yii

此代码返回预定职位列表(姓名,日期时间)。

$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
                )
    )
)

3 个答案:

答案 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的优秀扩展程序,它具有更多功能,并允许您进行更多自定义和控制。