


Monate mit PHP DateTime ändern: Das beabsichtigte Verhalten aufdecken
Beim Arbeiten mit der DateTime-Klasse von PHP führt das Addieren oder Subtrahieren von Monaten möglicherweise nicht immer zum Ergebnis erwartete Ergebnisse. In der Dokumentation wird darauf hingewiesen, dass Sie sich vor diesen Vorgängen „hüten“ sollten, da sie nicht so intuitiv sind, wie sie scheinen.
Erklärung des beabsichtigten Verhaltens
Betrachten Sie das Beispiel in die Dokumentation:
$date = new DateTime('2000-12-31'); $date->modify('+1 month'); // Move ahead by 1 month echo $date->format('Y-m-d') . "\n"; // Prints 2001-01-31 $date->modify('+1 month'); // Advance another month echo $date->format('Y-m-d') . "\n"; // Prints 2001-03-03
Statt wie erwartet den Monat zu erhöhen, ist das Ergebnis ein Sprung zum 3. März. Warum ist das so?
Das passiert intern:
- Das Hinzufügen eines Monats erhöht die Monatszahl um 1, was zum 31. Dezember 2001 führt.
- Allerdings Dezember hat nur 31 Tage und es gibt keinen 31. Tag im Januar.
- Als Ergebnis PHP passt das Datum automatisch auf den nächsten Tag an, der zufällig der 1. Februar ist.
- Das Hinzufügen eines weiteren Monats ergibt nun den 3. März, da der Februar im Jahr 2001 nur 28 Tage hatte.
Erhalten des erwarteten Verhaltens
Um das erwartete Verhalten zu erreichen, wobei „1 Monat“ Wenn Sie das Datum um einen ganzen Monat vorverlegen möchten, gibt es einige Optionen:
- Manuelle Berechnung:Überprüfen Sie die Anzahl der Tage im nächsten Monat und passen Sie das Datum manuell entsprechend an.
- PHP 5.3 Workaround: Nutzen Sie die Strophe „erster Tag des nächsten Monats“, um direkt zum ersten Tag des nächsten Monats zu gelangen Monat. Beispiel:
$d = new DateTime('2010-01-31'); $d->modify('first day of next month'); echo $d->format('F'), "\n"; // Correctly prints February
Fazit
Das Verständnis des beabsichtigten Verhaltens der monatsverändernden Operationen von DateTime ist entscheidend, um unerwartete Ergebnisse zu vermeiden. Durch die Verwendung der manuellen Berechnung oder der Funktion „Erster Tag des nächsten Monats“ können Sie die gewünschte Funktionalität zur Datumsmanipulation in Ihren PHP-Anwendungen erreichen.
Das obige ist der detaillierte Inhalt vonWarum führt DateTime::modify(' 1 Monat') von PHP zu unerwarteten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Alipay PHP ...

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Dreamweaver Mac
Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version