SymfonyWorld Online 2022 Winter Edition

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::modifyCréée un nouvel objet avec l'horodatage modifié

Description

public DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false

Crée un nouvel objet DateTimeImmutable avec l'horodatage modifié. L'objet original ne sera pas modifié.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

modifier

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Valeurs de retour

Retourne un novel objet DateTimeImmutable modifié ou false si une erreur survient.

Exemples

Exemple #1 Exemple de DateTimeImmutable::modify()

Style orienté objet

<?php
$date 
= new DateTimeImmutable('2006-12-12');
$newDate $date->modify('+1 day');
echo 
$newDate->format('Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2006-12-13

Exemple #2 Faire attention lors de l'ajout ou soustraction de mois

<?php
$date 
= new DateTimeImmutable('2000-12-31');

$newDate1 $date->modify('+1 month');
echo 
$newDate1->format('Y-m-d') . "\n";

$newDate2 $newDate1->modify('+1 month');
echo 
$newDate2->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Voir aussi

add a note

User Contributed Notes 1 note

up
3
dmytro dot sokil at gmail dot com
4 years ago
To modify milliseconds and microseconds use next formats:

<?php
$a
= new \DateTimeImmutable('2018-01-01 00:00:00.000');
$b = $a->modify('9 msec');
var_dump($b->format('Y-m-d H:i:s.u'));
?>

Returns string(26) "2018-01-01 00:00:00.009000"

<?php
$a
= new \DateTimeImmutable('2018-01-01 00:00:00.000');
$b = $a->modify('9 usec');
var_dump($b->format('Y-m-d H:i:s.u'));
?>

Returns "2018-01-01 00:00:00.000009"
To Top