Wyświetlanie odliczania
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 64 z 68.
Wyzwanie
ŁatwyOtrzymasz trzy dane wejściowe: ciąg JSON reprezentujący tablicę wydarzeń, ciąg daty w formacie YYYY-MM-DD reprezentujący dzisiejszą datę oraz nazwę wydarzenia, dla którego należy wyświetlić odliczanie.
Pierwsze dane wejściowe będą ciągiem JSON w tym formacie: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]
Drugie dane wejściowe będą ciągiem daty w tym formacie: 2024-04-01
Trzecie dane wejściowe będą nazwą wydarzenia w tym formacie: Team Meeting
Wczytaj wszystkie trzy dane wejściowe i zdekoduj ciąg JSON do tablicy wydarzeń. Znajdź wydarzenie, którego nazwa jest zgodna z podaną nazwą. Utwórz obiekty DateTime zarówno dla dzisiejszej daty, jak i daty wydarzenia.
Oblicz różnicę między datą wydarzenia a dzisiejszą datą. Użyj metody diff() na obiekcie DateTime reprezentującym dzisiejszą datę, przekazując obiekt DateTime reprezentujący datę wydarzenia jako parametr. Zwróci to obiekt DateInterval. Odczytaj właściwość days tego obiektu, aby uzyskać liczbę dni między tymi dwiema datami.
Wypisz odliczanie w następującym formacie:
Countdown to [event name]: [number of days] days
Jeśli wydarzenia nie ma w tablicy, wypisz: Event not found
Format danych wejściowych:
- Pierwszy wiersz: ciąg JSON reprezentujący tablicę wydarzeń z kluczami
name,dateilocation - Drugi wiersz: ciąg daty w formacie YYYY-MM-DD reprezentujący dzisiejszą datę (przykład:
2024-04-01) - Trzeci wiersz: nazwa wydarzenia, dla którego należy wyświetlić odliczanie (przykład:
Team Meeting)
Oczekiwany wynik: Jeden wiersz pokazujący odliczanie w formacie: Countdown to [event name]: [number of days] days albo Event not found, jeśli wydarzenie nie istnieje
Spróbuj swoich sił
<?php
// Wczytaj dane wejściowe
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));
// Zdekoduj ciąg JSON do tablicy events
$events = (array)json_decode($jsonString, true);
// TODO: Napisz swój kod poniżej
// Znajdź wydarzenie o podanej nazwie
// Utwórz obiekty DateTime dla dzisiejszej daty i daty wydarzenia
// Oblicz różnicę za pomocą metody diff()
// Odczytaj właściwość days obiektu DateInterval
// Wyświetl wynik
echo $result;
?>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ą2Zaawansowane 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ów6Funkcje wyższego rzędu dla tablic
Przekształcanie za pomocą 'array_map''array_map' z własną funkcjąFiltrowanie za pomocą 'array_filter''array_filter' z własną funkcjąRedukowanie za pomocą 'array_reduce'Przechodzenie po elementach za pomocą 'array_walk'Podsumowanie: przetwarzanie danych9Harmonogram wydarzeń
Dane wydarzeniaDodawanie nowego wydarzeniaPoćwicz samodzielnie: Kompilator PHP online