Ich möchte das Datum des letzten Monats erhalten. Ich habe das geschrieben:
$prevmonth = date('M Y');
Welches gibt mir den aktuellen Monat / Jahr. Ich kann nicht sagen, ob ich verwenden strtotime
soll mktime
. Etwas zum Zeitstempel? Muss ich danach etwas hinzufügen, um zurückzusetzen, damit das Datum nicht für alle Zeitstempel auf meiner Website in allen Monaten auf den letzten Monat festgelegt wird? Ich versuche RTM, aber es fällt mir schwer, das herauszufinden.
$time = strtotime('2011-03-30 01:01:01'); echo date('r', strtotime('-1 month', $time));
Dieser wird am Mittwoch, den 02. März 2011 um 01:01:01 Uhr zurückgegeben - nicht im Februar! Verwenden Siestrtotime('first day of previous month')
stattdessenDadurch wird der Zeitstempel für den letzten Monat genau ausgegeben. Sie müssen danach nichts mehr zurücksetzen. Wenn Sie es danach in einem englischen Format haben möchten, können Sie den Zeitstempel mit date () formatieren, dh:
quelle
quelle
Falsche Antworten sind:
Der Grund ist, wenn der aktuelle Monat mehr als 30 Tage beträgt, der vorherige Monat jedoch 29 und weniger $ lastMonth mit dem aktuellen Monat identisch ist.
z.B
Die richtige Antwort lautet:
quelle
Wenn Sie nur den Vormonat erhalten möchten, können Sie Folgendes verwenden
Wenn Sie die gleichen Tage des Vormonats erhalten möchten, können Sie Folgendes verwenden:
Wenn Sie das letzte Datum des Vormonats erhalten möchten, können Sie Folgendes verwenden ...
Wenn Sie das erste Datum des Vormonats erhalten möchten, können Sie Folgendes verwenden ...
quelle
quelle
Fand dies falsch, wenn die vorherigen Monate kürzer als aktuell sind.
Versuchen Sie es am 30. März und Sie erhalten 2012-03-01 statt 2012-02 ...
An einer besseren Lösung arbeiten ...
quelle
quelle
2015-10-31
in PHP 5.5 und 5.6.11. Sie erhalten201510
- das gleiche Verhalten wie beistrtotime('- 1 month)
.quelle
Sie können verwenden
strtotime
, was in solchen Situationen großartig ist:Kriege dich :
quelle
ODER
arbeitet am 30.03.2012
quelle
Oh, ich habe das herausgefunden, bitte ignorieren Sie es, es sei denn, Sie haben das gleiche Problem wie in diesem Fall:
quelle
Verwenden Sie diesen Funktionscode, um den Vormonat für ein bestimmtes Datum abzurufen:
Das Ergebnis ist Dezember 2011. Arbeitet an einem Monat mit kürzerem Tag als im Vormonat.
quelle
Die beste Lösung, die ich gefunden habe, ist folgende:
Wenn wir also in 3 (März) sind und 5 Monate abziehen wollen, wäre das
subtractMonth(3,5);
das würde 10 (Oktober) geben. Wenn das Jahr auch gewünscht wird, könnte man dies tun:
quelle
Für mich geht das:
Heute ist der 31.03.2012
quelle
Wenn Sie das erste Datum des Vormonats erhalten möchten, können Sie Folgendes verwenden:
$prevmonth = date('M Y 1', strtotime('-1 months'));
Was? Das erste Datum ist immer 1: D.quelle
Diese Frage ist ziemlich alt, aber hier geht es trotzdem. Wenn Sie versuchen, nur den Vormonat und den Tag abzurufen, können Sie Folgendes verwenden:
quelle
Einfach letzten Monat bekommen.
Beispiel:
Heute ist: 2020-09-02
Code:
Ergebnis:
quelle
31
und der Monat nicht Januar oder August ist (wie es2020 May 31
wird2020 April 31
, das gibt es nicht)