Menu
Coddy logo textTech

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() przyjmuje te same typy ciągów znaków, które działają z strtotime(), na przykład '+1 day', '-2 weeks' lub 'next Friday'. W przeciwieństwie do tworzenia nowego obiektu za każdym razem, ta metoda modyfikuje bezpośrednio istniejący obiekt DateTime, co jest wydajne przy sekwencyjnych operacjach 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 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.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa dane wejściowe: ciąg znaków z datą w formacie Y-m-d H:i:s oraz ciąg znaków określają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 modyfikujące, takie jak +1 week, -3 days lub +2 months.

Wczytaj oba dane wejściowe, utwórz obiekt DateTime przy użyciu ciągu znaków z datą, użyj metody modify(), aby zastosować wyrażenie modyfikujące do obiektu DateTime, i 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 określający modyfikację (na przykład: +1 week, -3 days lub +2 months)

Oczekiwane wyjście: zmodyfikowana data w formacie 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 z modyfikacją
$modificationString = trim(fgets(STDIN));

// TODO: Napisz poniżej swój kod
// Utwórz obiekt DateTime, zastosuj modyfikację i sformatuj wynik


// Wyświetl zmodyfikowaną datę
echo $modifiedDate;
?>
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator PHP online