Benutzer-Werkzeuge

Webseiten-Werkzeuge


monatsliste

Monatsliste (Auflistung aller Monate)

Fallbeispiel:

Sie wollen eine Auflistung der letzten 12 Monate darstellen, wobei der aktuelle Monat als letzter angezeigt wird, damit der Benutzer seine Rechnungen aus diesem vergangendem Zeitraum einsehen kann. Dabei soll der vom Benutzer ausgewählte Monat gehighlightet (in fetter Schrift) dargestellt werden.

Vorraussetzung

Vorraussetzung für dieses Beispiel ist der DateTimeConverter

PHP-Funktion:

monatsliste.php
function Monatsliste( $month = 0 )
{
    $currDate = getdate(); // aktuelles Datum ermitteln
 
    if( $month == 0 ) // wenn kein Monat übergeben wurde
        $month = $currDate['mon']; // Monat aus aktuellem Datum nehmen
 
    $currMonth = $currDate['mon']; // Monat aus aktuellem Datum definieren
    $currYear = $currDate['year']; // Jahr aus aktuellem Datum definieren
    $result = array(); // Ergebnis-Array
    $key = 0;
 
    for( $m=0; $m<=11; $m++ ) // für jeden Monat einen Durchlauf (12 Durchläufe)
    {
        if( $currMonth == 0 ) // wenn Monat "Null" erreicht hat
        {
            $currMonth = 12; // Monat auf Dezember setzen
            $currYear--; // Jahr = vorheriges Jahr
        }
 
        $result[$key] = new stdClass;
        $result[$key]->month = $currMonth;
        $date = $currYear . "-" . $currMonth . "-01";
        $timestamp = dateTimeConverter::createUnixTimestamp( $date );
        $result[$key]->monthName = dateTimeConverter::getGermanMonth( $timestamp, 3 );
        $result[$key]->year = $currYear;
 
        if( $currMonth == $month ) // aktiver Eintrag, wenn Monat = gewünschter Monat ist
            $result[$key]->active = true;
        else // sonst inaktiver Eintrag
            $result[$key]->active = false;
 
        $currMonth--; // einen Monat abziehen
        $key++;
    }
 
    krsort( $result ); // Liste in umgedrehter Reihenfolge ausgeben
    return $result;
}

Anwendungsbeispiel:

$Monate = Monatsliste( $_GET['month'] );
 
foreach( $Monate as $Monat )
{
    if( $Monat->active )
        echo "<b>" . $Monat->monthName . " " . $Monat->year . "</b> | ";
    else
        echo $Monat->monthName . " " . $Monat->year . " | ";
}

Ergebnis:

Aug 2014 | Sep 2014 | Okt 2014 | Nov 2014 | Dez 2014 | Jan 2015 | Feb 2015 | Mrz 2015 | Apr 2015 | Mai 2015 | Jun 2015 | Jul 2015 |

Hinweise zum Beispiel: Das Ergebnis wurde im Juli 2015 erstellt (deswegen wird dieser Monat als letztes angezeigt) und als GET-Parameter „month“ wurde 5 übergeben (deswegen wird der Mai 2015 fett dargestellt).

monatsliste.txt · Zuletzt geändert: 2015/12/19 00:00 (Externe Bearbeitung)