Организация дат в PHP - PullRequest
1 голос
/ 27 мая 2010

Я хочу организовать серию дат в следующем формате. В качестве контекста, даты являются датами предстоящих событий, которые могут быть добавлены моими пользователями. Формат:

Январь 2011

дата - событие

дата - событие

дата - событие

Февраль 2011

дата - событие

дата - событие

дата - событие

со всеми событиями в данном месяце, упорядоченными по дате их возникновения. Все мои даты событий хранятся в моей базе данных как метки времени Unix. Проблема в том, что я не знаю, где id начал разрабатывать функцию, которая упорядочит все мои события таким образом. Кто-нибудь может мне помочь?

Приветствия

Ответы [ 2 ]

4 голосов
/ 27 мая 2010

Мне нравится сначала группировать элементы, используя индекс массива.

Контроллер

$months = array();
foreach ($rows as $row) {
    $month = date('F Y', strtotime($row['date']);

    if (!isset($months[$month]) {
        $months[$month] = array();
    }

    $months[$month][] = $row;
}

View

foreach ($months as $month => $events) {
    echo '<h2>' . $month . '</h2>';
    foreach ($events as $event) {
        // ...
    }
}
2 голосов
/ 27 мая 2010

повторение событий; Следите за последним увиденным МЕСЯЦЕМ. Если текущий месяц! = Предыдущий месяц, отобразите разделитель месяца.

$lastDate = '';

foreach ($events as $e)
{   
    $currDate = date('F Y', $e->date);
    if ($currDate != $lastDate )
    {
        echo "<h1>$currDate</h1>";
    }
    // might want to format the date to be human readable here...
    echo "<li>$e->date, $e->event"; 
    $lastDate = $currDate;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...