2016-12-15 14 views
0

Ich habe einen CakePHP-Code. Ich speichere ein bestimmtes Datum aus der Datenbank in ein var $ endate. Ich speichere den Wert von $ endate in einer anderen Variablen. Beispiel: $ date = $ endate; Die nachfolgende Schleife zeigt wiederholt MonateAnzeige der letzten 10 Monate basierend auf einem bestimmten Datum

for ($l = 0; $l < 10; $l++) { 
    $month[] = date("Y-M", strtotime($date . " -$l months")); 
} 

Ausgang:

[0] => 2017-Mar 
[1] => 2017-Mar 
[2] => 2017-Jan 
[3] => 2016-Dec 
[4] => 2016-Dec 
[5] => 2016-Oct 
[6] => 2016-Oct 
[7] => 2016-Aug 
[8] => 2016-Jul 
[9] => 2016-Jul 

Wie kann ich die letzten 10 Monate angezeigt werden, basierend auf meinem geholt Datum?

Antwort

0

EDIT: Ah, habe nicht gesehen, dass deine Sequenz/Ausgabe nicht korrekt war :-) Gelöschter Teil der Antwort.

Ich würde die Verwendung von Cakes Date Klasse empfehlen, aber das scheint nicht direkt relevant für Ihre Frage.

Beispiel Cakes Zeit-Klasse:

$now = new \Cake\I18n\FrozenTime(); 
$monthsToGoBack = 10; 
$months = []; 

for ($i = 0; $i <= $monthsToGoBack; $i++) { 
    $months[] = $now->subMonths($i)->firstOfMonth()->hour(0)->minute(0)->second(0); 
} 

Ausgang: https://gist.github.com/Spriz/a21e6771f71cef0ad659e356737996a0

Verwandte Themen