Afficher un compte à rebours
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 64 sur 68.
Défi
FacileVous recevrez trois entrées : une chaîne JSON représentant un tableau d'événements, une chaîne de date au format YYYY-MM-DD représentant la date d'aujourd'hui, et un nom d'événement pour lequel afficher le compte à rebours.
La première entrée sera une chaîne JSON dans ce format : [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]
La deuxième entrée sera une chaîne de date dans ce format : 2024-04-01
La troisième entrée sera un nom d'événement dans ce format : Team Meeting
Lisez les trois entrées et décodez la chaîne JSON en un tableau d'événements. Trouvez l'événement qui correspond au nom d'événement fourni. Créez des objets DateTime pour la date d'aujourd'hui et pour la date de l'événement.
Calculez la différence entre la date de l'événement et la date d'aujourd'hui. Utilisez la méthode diff() sur l'objet DateTime d'aujourd'hui, en passant l'objet DateTime de l'événement en paramètre. Cela retourne un objet DateInterval. Accédez à la propriété days de cet objet pour obtenir le nombre de jours entre les deux dates.
Affichez le compte à rebours au format suivant :
Countdown to [event name]: [number of days] days
Si l'événement n'est pas trouvé dans le tableau, affichez : Event not found
Format d'entrée :
- Première ligne : Une chaîne JSON représentant le tableau d'événements avec les clés
name,date, etlocation - Deuxième ligne : Une chaîne de date au format YYYY-MM-DD représentant la date d'aujourd'hui (exemple :
2024-04-01) - Troisième ligne : Un nom d'événement pour lequel afficher le compte à rebours (exemple :
Team Meeting)
Sortie attendue : Une seule ligne affichant le compte à rebours au format : Countdown to [event name]: [number of days] days, ou Event not found si l'événement n'existe pas
Essayez vous-même
<?php
// Lire les entrées
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));
// Décoder la chaîne JSON en un tableau d'événements
$events = (array)json_decode($jsonString, true);
// À FAIRE : Écrivez votre code ci-dessous
// Trouver l'événement qui correspond au nom de l'événement fourni
// Créer des objets DateTime pour la date d'aujourd'hui et la date de l'événement
// Calculer la différence en utilisant la méthode diff()
// Accéder à la propriété days de l'objet DateInterval
// Afficher le résultat
echo $result;
?>Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement6Fonctions de tableau d'ordre supérieur
Transformer avec 'array_map''array_map' avec une fonction personnaliséeFiltrer avec 'array_filter''array_filter' avec une fonction personnaliséeRéduire avec 'array_reduce'Parcourir avec 'array_walk'Récapitulatif : Traitement des données9Planificateur d'événements
Données d'événementAjouter un nouvel événement