PHP tarihleri ​​Düzenleme

2 Cevap php

Im aşağıdaki biçimde tarihleri ​​bir dizi düzenlemek isteyen. Bağlamda bir parça olarak, tarihler benim kullanıcılar tarafından eklenebilir yaklaşan olayların tarihler. Biçimi:

Ocak 2011

tarih - Etkinlik

tarih - Etkinlik

tarih - Etkinlik

Şubat 2011

tarih - Etkinlik

tarih - Etkinlik

tarih - Etkinlik

meydana hangi tarihe göre düzenlenmiş belirli bir ayda tüm olaylar, ile. Benim olay tüm tarihleri ​​unix damgaları olarak benim veritabanında saklanır. Sorun ben kimliği bu şekilde benim tüm olayları sipariş verecek bir fonksiyonu geliştirmeye başlar nerede dotn vardır. Herkes bana yardımcı olabilir misiniz?

Şerefe

2 Cevap

Ben grup ilk olarak bir dizi dizini kullanarak öğeleri gibi.

Controller

$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) {
        // ...
    }
}

Olayları yineleme; görülen son AY takip. Eğer geçerli ay! = Önceki ay, bir ay ayırıcı görüntüler.

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

}