DateTime-Objekte ändern
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 50 von 68.
Sobald Sie ein DateTime-Objekt haben, müssen Sie es oft ändern, um einen anderen Zeitpunkt darzustellen. Die modify()-Methode ermöglicht es Ihnen, Zeit zu Ihrem DateTime-Objekt hinzuzufügen oder davon abzuziehen, indem Sie Ausdrücke in natürlicher Sprache verwenden, was Datumsberechnungen intuitiv und lesbar macht.
Die Methode modify() akzeptiert dieselben Arten von Zeichenfolgen, die auch mit strtotime() funktionieren, wie zum Beispiel '+1 day', '-2 weeks' oder 'next Friday'. Im Gegensatz zum jedesmaligen Erstellen eines neuen Objekts modifiziert diese Methode das bestehende DateTime-Objekt direkt, was für aufeinanderfolgende Datumsoperationen effizient ist.
<?php
$date = new DateTime();
echo $date->format('Y-m-d'); // Heutiges Datum
$date->modify('+1 week');
echo $date->format('Y-m-d'); // Eine Woche ab heute
$date->modify('-3 days');
echo $date->format('Y-m-d'); // 4 Tage ab heute
?>Dieser Ansatz bietet Ihnen eine enorme Flexibilität für Datumsberechnungen. Sie können mehrere Modifikationen verketten oder komplexe Ausdrücke verwenden wie '+2 months -1 day', um anspruchsvolle Datumsarithmetik durchzuführen, während Ihr Code übersichtlich und wartbar bleibt.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachSie erhalten zwei Eingaben: eine Datumszeichenfolge im Format Y-m-d H:i:s und eine Modifikationszeichenfolge. Die erste Eingabe ist ein bestimmtes Datum mit Uhrzeit (Beispiel: 2024-03-15 14:30:25), und die zweite Eingabe ist ein Modifikationsausdruck wie +1 week, -3 days oder +2 months.
Lesen Sie beide Eingaben ein, erstellen Sie ein DateTime-Objekt unter Verwendung der Datumszeichenfolge, verwenden Sie die Methode modify(), um den Modifikationsausdruck auf das DateTime-Objekt anzuwenden, und geben Sie das geänderte Datum im Format Y-m-d H:i:s aus.
Eingabeformat:
- Erste Zeile: Eine Datumszeichenfolge im Format
Y-m-d H:i:s(Beispiel:2024-03-15 14:30:25) - Zweite Zeile: Eine Modifikationszeichenfolge (Beispiel:
+1 weekoder-3 daysoder+2 months)
Erwartete Ausgabe: Das geänderte Datum, formatiert als Y-m-d H:i:s
Spickzettel
Die Methode modify() ermöglicht es Ihnen, Zeit zu einem DateTime-Objekt mithilfe von Ausdrücken in natürlicher Sprache hinzuzufügen oder davon abzuziehen:
<?php
$date = new DateTime();
$date->modify('+1 week'); // Eine Woche hinzufügen
$date->modify('-3 days'); // Drei Tage abziehen
$date->modify('+2 months -1 day'); // Komplexe Ausdrücke
?>Die Methode ändert das bestehende DateTime-Objekt direkt und akzeptiert dieselben String-Formate wie strtotime(), wie zum Beispiel '+1 day', '-2 weeks' oder 'next Friday'.
Probier es selbst
<?php
// Den Datums-String einlesen
$dateString = trim(fgets(STDIN));
// Den Modifikations-String einlesen
$modificationString = trim(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten
// Erstellen Sie ein DateTime-Objekt, wenden Sie die Modifikation an und formatieren Sie das Ergebnis
// Das geänderte Datum ausgeben
echo $modifiedDate;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung7Arbeiten mit Datum und Uhrzeit
Die 'date()'-FunktionUnix-Timestamps mit 'time()'Einführung in das DateTime-ObjektDateTime-Objekte formatierenDateTime-Objekte ändernZusammenfassung: Datumsberechnungen2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung