@SlimSavernake

Как в yii2 сгруппировать результат запроса по дате (timestamp)?

Пример таблицы Article:
id
title
text
sort_date

Пример запроса:
Article::find()->orderBy('sort_date DESC')->limit(10)->All(),

sort_date - timestamp

В итоге нужно получить что-то вроде:

21.10.2015
Заглоовок 1
Заголовок 2

20.10.2015
Заглоовок 3
Заголовок 4
Заглоовок 5
Заголовок 6
  • Вопрос задан
  • 1091 просмотр
Решения вопроса 1
dergus
@dergus
$articles=Article::find()->orderBy('sort_date DESC')->limit(10)->All();
$sorted_articles=[];
foreach($articles as $article){
      $dt=date('d.m.Y',$article->sort_date);
      $sorted_articles[$dt][]=$article;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@matperez
Попробуйте что-нибудь вроде
->select('article.*, DATE_FORMAT(FROM_UNIXTIME(`article.sort_date`), \'%d.%m.%Y\') as date')
->orderBy('sort_date')

Ну и публичное свойство date можно в модель добавить чтобы было куда само значение сохранять.

А раскидать в массив по конкретным датам можно уже на уровне PHP.
Ответ написан
Комментировать
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
grouped dy sort_date
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы