3 Stimmen

wie man die letzten 3 Monate in php abfragt

Wie man die vorhergehenden 3 Monate in php ex(Wenn ich DEC. sage, sollte es die vorhergehenden 3 Monate d.h., OCT NOV DEC anzeigen) erhält

12voto

Sarfraz Punkte 366217

Sie können die strtotime Funktion wie folgt:

echo date('M', strtotime('-3 month'));

Sie geben also frühere Daten mit einem Minuszeichen an.

echo date('M', strtotime('0 month'));
echo date('M', strtotime('-1 month'));
echo date('M', strtotime('-2 month'));
echo date('M', strtotime('-3 month'));

Ergebnisse:

Dec
Nov
Oct
Sep

Dasselbe können Sie tun, wenn Sie eine Schleife wie diese verwenden:

for ($i = -3; $i <= 0; $i++){
  echo date('M', strtotime("$i month"));
}

Ergebnisse:

Sep
Oct
Nov
Dec

In der Dokumentation finden Sie viele weitere freundliche Schlüsselwörter für Datum und Uhrzeit strtotime unterstützt:

3voto

Inweo Punkte 163

Die gewählte Antwort ist fast richtig.

Die richtige Lösung ist:

for ($i = -3; $i <= 0; $i++){
   echo date('M', strtotime("$i month", strtotime(date("Y-m-15"))));
}

Erklären Sie das: strtotime Standardimplementierung ist:

date ( string $format [, int $timestamp = time() ] ) : string

Wie Sie sehen können, gibt es einen Zeitstempel mit dem Standardwert: time().

Der letzte Termin ist der 31. März.

Weil es keinen 31. Februar gibt

echo date('M', strtotime("-1 month"));

wird im März zurückkehren

Andererseits:

echo date('M', strtotime("+1 month"));

wird im Mai zurückkehren (April wird übersprungen).

Aus diesem Grund müssen wir einen Zeitstempelwert einrichten, der ein sicheres Datum ist. Jedes Datum zwischen 1-28 ist sicher, weil jeder Monat ein solches Datum hat. In meinem Beispiel hatte ich 15. Tag des Monats wählen.

-1voto

Waseem Punkte 144
    $month = date('M');
    $year = date('Y');
    $no_of_mnths = date('n',strtotime("-2 months"));
    $remaining_months = (12 - $no_of_mnths)."\r\n";
    $tot = $remaining_months+1; 
    for($j=0;$j<$tot;$j++){
            echo  date('M',strtotime(''.$no_of_mnths.' months'))        
            $no_of_mnths++;         
    }

-1voto

Rajat1937 Punkte 23

Das kann Ihnen helfen

<?php
    $date = explode("-", "2016-08-31");
   if($date[2]== "01"){$days = "-0 days";}else{$days = "-1 days";}
        $time = strtotime($days, mktime(0, 0, 0, $date[1], $date[2], $date[0]));
        $MTD = date('Y-m-01', strtotime('0 month'));
        $M1 = date('Y-m-01', strtotime('-1 month'));
        $M2 = date('Y-m-01', strtotime('-2 month'));
        $M3 = date('Y-m-01', strtotime('-3 month'));    
$rng = array();
        $rng[$MTD] = strftime("%B, %Y", strtotime(" ", $time));
        $rng[$M1] = strftime("%B, %Y", strtotime("first day of previous month",    $time));
        $rng[$M2] = strftime("%B, %Y", strtotime("-2 months", $time));
        $rng[$M3] = strftime("%B, %Y", strtotime("-3 months", $time));
?>

Hier geben $MTD, $M1, $M2, $M3 das Datum in der Form "dd-mm-yyyy" und $rng[$MTD], $rng[$M1], $rng[$M2], $rng[$M3] das Datum in der Form "Name des Monats, Jahr" => (z. B. August 2016)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X