Modifier les objets DateTime
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 50 sur 68.
Une fois que vous avez un objet DateTime, vous avez souvent besoin de le modifier pour représenter un moment différent dans le temps. La méthode modify() vous permet d'ajouter ou de soustraire du temps à votre objet DateTime en utilisant des expressions en langage naturel, rendant les calculs de dates intuitifs et lisibles.
La méthode modify() accepte les mêmes types de chaînes de caractères qui fonctionnent avec strtotime(), tels que '+1 day', '-2 weeks', ou 'next Friday'. Contrairement à la création d'un nouvel objet à chaque fois, cette méthode modifie directement l'objet DateTime existant, ce qui est efficace pour les opérations de date séquentielles.
<?php
$date = new DateTime();
echo $date->format('Y-m-d'); // Date d'aujourd'hui
$date->modify('+1 week');
echo $date->format('Y-m-d'); // Une semaine à partir d'aujourd'hui
$date->modify('-3 days');
echo $date->format('Y-m-d'); // 4 jours à partir d'aujourd'hui
?>Cette approche vous offre une grande flexibilité pour les calculs de dates. Vous pouvez enchaîner plusieurs modifications ou utiliser des expressions complexes comme '+2 months -1 day' pour effectuer des opérations arithmétiques de dates sophistiquées tout en gardant votre code clair et facile à maintenir.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileVous recevrez deux entrées : une chaîne de date au format Y-m-d H:i:s et une chaîne de modification. La première entrée est une date et une heure spécifiques (exemple : 2024-03-15 14:30:25), et la deuxième entrée est une expression de modification comme +1 week, -3 days, ou +2 months.
Lisez les deux entrées, créez un objet DateTime en utilisant la chaîne de date, utilisez la méthode modify() pour appliquer l'expression de modification à l'objet DateTime, et affichez la date modifiée au format Y-m-d H:i:s.
Format d'entrée :
- Première ligne : Une chaîne de date au format
Y-m-d H:i:s(exemple :2024-03-15 14:30:25) - Deuxième ligne : Une chaîne de modification (exemple :
+1 weekou-3 daysou+2 months)
Sortie attendue : La date modifiée formatée comme Y-m-d H:i:s
Aide-mémoire
La méthode modify() vous permet d'ajouter ou de soustraire du temps à un objet DateTime en utilisant des expressions en langage naturel :
<?php
$date = new DateTime();
$date->modify('+1 week'); // Ajouter une semaine
$date->modify('-3 days'); // Soustraire trois jours
$date->modify('+2 months -1 day'); // Expressions complexes
?>La méthode modifie directement l'objet DateTime existant et accepte les mêmes formats de chaîne que strtotime(), tels que '+1 day', '-2 weeks' ou 'next Friday'.
Essayez vous-même
<?php
// Lire la chaîne de date
$dateString = trim(fgets(STDIN));
// Lire la chaîne de modification
$modificationString = trim(fgets(STDIN));
// TODO : Écrivez votre code ci-dessous
// Créer un objet DateTime, appliquer la modification et formater le résultat
// Afficher la date modifiée
echo $modifiedDate;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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 simple7Travailler avec les dates et les heures
La fonction 'date()'Timestamps Unix avec 'time()'Introduction à l'objet DateTimeFormater les objets DateTimeModifier les objets DateTimeRécapitulatif : Calculs de dates2Manipulations 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 classement