2017-01-29 4 views
0

Wie bekomme ich eine Liste von Monat/Jahr, beginnend mit dem aktuellen Monat/Jahr. d.h. Januar 2017, Februar 2017, März 2017, April 2017 und so weiter. Die Liste könnte beliebig lang sein (jan bis okt, jan bis dezember, usw.).Wie bekomme ich aktuelle und kommende Termine?

P.S. Es gibt keinen Anfangs- und Enddatumsbereich.

+3

Mögliche Duplikate von [PHP: Alle Daten zwischen zwei Daten in einem Array zurückgeben] (http://stackoverflow.com/questions/4312439/php-return-all-dates-between-two-dates-in-an- Array) – cb0

Antwort

1

Dies ist eine mögliche Lösung, mit Intervallen:

function getList($n) { 
    $now=new DateTime(); 
    $myDate=new DateTime($now->format('Y-m-1')); 
    $interval=new DateInterval('P1M'); 
    $result=[]; 
    for ($i=0; $i<$n; ++$i) { 
     $result[]=$myDate->format('M Y'); 
     $myDate->add($interval); 
    } 
    return $result; 
} 

Es schafft ein Datum zeigt auf den ersten Tag im aktuellen Monat , und danach fügt bei jedem Zyklus einen Monat hinzu.

+0

Das Ausgabeformat wurde so geändert, dass die Anforderung eingehalten wird ... – xzoert

1

Sie können eine Funktion zum Generieren dieser Liste erstellen, indem Sie die Länge übergeben. Unten ist ein Beispielcode, der Ihnen helfen könnte.

In diesem Beispiel 1 = Januar und 12 = Dezember

$list = getList(01,02); 
print_r($list); 
function getList($from,$to) 
{ 
$res = array(); 
for($i=$from;$i<=$to;$i++) 
{ 
    $res[] = date('M Y',strtotime('2017'.'-'.$i)); 
} 
return $res; 
} 
Verwandte Themen