2016-08-03 5 views

Antwort

11
<?php 
    echo $newdate = date("m-Y", strtotime("-1 months")); 

Ausgang

07-2016 
+0

N.B .: verwenden, bevor Sie dieses Beispiel verwenden, lesen Sie die Warnung über die Randfälle unten –

3

die Sie interessieren,

$today = date('m-Y'); 
$newdate = date('m-Y', strtotime('-1 months', strtotime($today))); 
echo $newdate; 
+0

sollte enthalten, dass dies in Schleife ist, wie ich die letzten 12 Monate ab dem aktuellen Monat erhalten möchte. – Grant

+0

Sie können es in der Schleife –

1

Je nach PHP-Version können Sie mit Datetime-Objekt (eingeführt in PHP 5.2, wenn ich mich richtig erinnere):

<?php 
$today = new DateTime(); // This will create a DateTime object with the current date 
$today->modify('-1 month'); 

Sie können ein anderes Datum an die Konstruktor muss es nicht das aktuelle Datum sein. Weitere Informationen: http://php.net/manual/en/datetime.modify.php

2

Warnung! Die oben genannten Beispiele funktionieren nicht, wenn sie am Ende eines Monats aufgerufen werden.

<?php 
$now = mktime(0, 0, 0, 10, 31, 2017); 
echo date("m-Y", $now)."\n"; 
echo date("m-Y", strtotime("-1 months", $now))."\n"; 

AUSGABE:

10-2017 
10-2017 

Im folgende Beispiel wird das gleiche Ergebnis produzieren:

$date = new DateTime('2017-10-31 00:00:00'); 
echo $date->format('m-Y')."\n"; 
$date->modify('-1 month'); 
echo $date->format('m-Y')."\n"; 

viele Möglichkeiten, wie das Problem zu lösen, kann in einem anderen Thread zu finden: PHP DateTime::modify adding and subtracting months