Menu
Coddy logo textTech

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.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Vous 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 week ou -3 days ou +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;
?>
quiz iconTestez-vous

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