2

このコードは、スケジュールされた投稿 (名前、日時) のリストを返します。

$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 の投稿をグループ化して、それぞれの 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
                )
    )
)
4

3 に答える 3

1

時間を取得するには、選択する必要があります

 $criteria->select='name, DATE_FORMAT(datetime, "%h:%i") as time';
$criteria->group='date(datetime)';

必要に応じてo/pを取得するには、phpロジックを使用します

于 2012-10-19T08:28:28.400 に答える
0

これを処理する単純な拡張機能があり、XDateView (免責事項: 私は作成者です) と呼ばれ、日付別にグループ化されたレコードを表示するためのものです。より高度な/構成可能なものが必要な場合は、 GroupGridViewと呼ばれる別の優れた拡張機能を使用できます。この拡張機能には、より多くの機能があり、より多くのカスタマイズと制御が可能です。

于 2012-10-19T13:48:29.473 に答える
0

結果がどのように正確に表示されるかはわかりませんが、もちろんそれは可能です。次のようなことを試してください:

$array[$models["date"]][]["name"] = $models["name"];
$array[$models["date"]][]["time"] = $models["time"];
于 2012-10-19T08:03:25.027 に答える