Есть таблица
date title
подскажите функцию которая бы разбивала новости на дни.
т.е.
5 октября
---------
title1
6 октября
----------
title2
title3
title4
7 октября
-----------
title5
date title
подскажите функцию которая бы разбивала новости на дни.
т.е.
5 октября
---------
title1
6 октября
----------
title2
title3
title4
7 октября
-----------
title5
как мне разбить новости по дням?
самый простой вариант - это выбрать все даты, запихнуть их в цикл и смотреть, если новость принадлежит этой дате - вывести
$prevdate = '';
foreach ($news as $date => $text) {
if ($date != $prevdate) {
echo '<div>' . $date . '</div>';
}
echo '<div>' . $text . '</div>';
$prevdate = $date;
}
Что-то примерно такое:
foreach($object_with_titles_and_date as $object){
$last_date = date("m-d", $object->date);
if(date("m-d", $object->date) != $last_date){
//новый блок, пишем новый день, выводим титл
}else{
//выводим титл
}
}
О, интересненько!
Но это сработает только если дата проставляется не через таймштамп. Но в противном случаи тут как раз бы и пригодилось date("m-d", $date);
Только немогу к каждой новости приписать время.
$row['date'] = strtotime($row['date']);
$date = date("d m Y", $row['date']);
$time = date("H:i", $row['date']);
$news[$date][$time] = $row['title'];
где в foreach приписать время к новости?
Дык это…
Вариант 1a: date('m-d', strtotime($date)).
Вариант 1b: SELECT UNIX_TIMESTAMP(datetime) AS date, затем date('m-d', $date).
Вариант 1c: substr($date, 0, 10).
Вариант 2: SELECT DATE(datetime) AS date, TIME(datetime) AS time.
Plexx
Помещать в элементы массива не сразу текст, а массив.
$news[$row['date']][] = array(
'time' => $row['time'],
'text' => $row['text'],
);
$row['date'] = strtotime($row['date']);
$date = date("d m Y", $row['date']);
$time = date("H:i", $row['date']);
$news[$date][] = array('time' => $time, 'title' => $row['title']);
а в foreach то как выделить time и title?
Спасибо всем кто помогал.