Modyfikowanie obiektów DateTime
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 50 z 68.
Gdy masz już obiekt DateTime, często musisz go zmienić, aby reprezentował inny moment w czasie. Metoda modify() pozwala dodawać lub odejmować czas od obiektu DateTime za pomocą wyrażeń w języku naturalnym, dzięki czemu obliczenia dotyczące dat są intuicyjne i czytelne.
Metoda modify() akceptuje te same rodzaje ciągów znaków, które działają z strtotime(), takie jak '+1 day', '-2 weeks' lub 'next Friday'. W przeciwieństwie do tworzenia za każdym razem nowego obiektu, ta metoda modyfikuje bezpośrednio istniejący obiekt DateTime, co jest wydajne przy wykonywaniu sekwencyjnych operacji na datach.
<?php
$date = new DateTime();
echo $date->format('Y-m-d'); // Dzisiejsza data
$date->modify('+1 week');
echo $date->format('Y-m-d'); // Za tydzień od dziś
$date->modify('-3 days');
echo $date->format('Y-m-d'); // Za 4 dni od dziś
?>To podejście zapewnia dużą elastyczność w obliczeniach dotyczących dat. Możesz łączyć wiele modyfikacji lub używać złożonych wyrażeń, takich jak '+2 months -1 day', aby wykonywać zaawansowane obliczenia na datach, zachowując przy tym przejrzystość i łatwość utrzymania kodu.
Wyzwanie
ŁatwyOtrzymasz dwa dane wejściowe: ciąg znaków z datą w formacie Y-m-d H:i:s oraz ciąg znaków opisujący modyfikację. Pierwsze dane wejściowe to konkretna data i godzina (na przykład: 2024-03-15 14:30:25), a drugie to wyrażenie modyfikacji, takie jak +1 week, -3 days lub +2 months.
Odczytaj oba dane wejściowe, utwórz obiekt DateTime na podstawie ciągu znaków z datą, użyj metody modify(), aby zastosować wyrażenie modyfikacji do obiektu DateTime, a następnie wypisz zmodyfikowaną datę w formacie Y-m-d H:i:s.
Format danych wejściowych:
- Pierwszy wiersz: ciąg znaków z datą w formacie
Y-m-d H:i:s(na przykład:2024-03-15 14:30:25) - Drugi wiersz: ciąg znaków opisujący modyfikację (na przykład:
+1 week,-3 dayslub+2 months)
Oczekiwane wyjście: zmodyfikowana data sformatowana jako Y-m-d H:i:s
Spróbuj swoich sił
<?php
// Wczytaj ciąg znaków z datą
$dateString = trim(fgets(STDIN));
// Wczytaj ciąg znaków określający modyfikację
$modificationString = trim(fgets(STDIN));
// TODO: Napisz swój kod poniżej
// Utwórz obiekt DateTime, zastosuj modyfikację i sformatuj wynik
// Wyświetl zmodyfikowaną datę
echo $modifiedDate;
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką7Praca z datami i czasem
Funkcja 'date()'Znaczniki czasu Unix za pomocą 'time()'Wprowadzenie do obiektu DateTimeFormatowanie obiektów DateTimeModyfikowanie obiektów DateTimePodsumowanie: obliczenia na datach2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online