La syntaxe de base de la fonction date_add est la suivante:
<span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(DateTime </span><span><span class="hljs-variable">$object</span></span><span>, DateInterval </span><span><span class="hljs-variable">$interval</span></span><span>) : DateTime
</span></span>
$ objet : un objet DateTime qui représente l'heure actuelle.
$ Interval : un objet DateInterval qui représente l'intervalle de temps à ajouter.
Cette fonction renvoie un nouvel objet DateTime , qui est le résultat après l'ajout de l'intervalle de temps.
Avant d'utiliser Date_add , nous devons d'abord créer un objet DateTime . Cela peut généralement être réalisé avec une nouvelle datetime () ou créé en spécifiant une date spécifique.
<span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-06-16 14:00:00'</span></span><span>);
</span></span>
De cette façon, nous créons un objet DateTime représentant 14:00:00 le 16 juin 2025.
L'objet DateInterval représente un intervalle de temps. Vous pouvez créer cet objet par une chaîne commençant par P dans le format:
P : indique la période
Les unités de temps sont suivies, telles que y (année), m (mois), D (jour), h (heure), i (minute), s (secondes).
Par exemple, pour représenter 1 jour, P1D peut être utilisé et PT2H peut être utilisé pendant 2 heures.
<span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P1D'</span></span><span>); </span><span><span class="hljs-comment">// Augmenter1ciel</span></span><span>
</span></span>
Avec les objets DateTime et DateInterval , nous pouvons utiliser la fonction date_add pour effectuer le calcul de l'heure. Par exemple, supposons que nous voulons ajouter 5 jours à 2025-06-16 14:00:00 :
<span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-06-16 14:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P5D'</span></span><span>); </span><span><span class="hljs-comment">// Augmenter5ciel</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
Le résultat de la sortie est:
<span><span><span class="hljs-number">2025-06-21 14:00:00</span></span><span>
</span></span>
Comme vous pouvez le voir, Date_add a ajouté la date d'origine pendant 5 jours et a obtenu une nouvelle date.
En plus d'augmenter le nombre de jours, nous pouvons également augmenter les heures, les minutes, etc. Par exemple, supposons que nous voulons ajouter 3 heures et 45 minutes à un certain moment:
<span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-06-16 14:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'PT3H45M'</span></span><span>); </span><span><span class="hljs-comment">// Augmenter3Heure45minute</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
Le résultat de la sortie est:
<span><span><span class="hljs-number">2025-06-16 17:45:00</span></span><span>
</span></span>
Nous pouvons réduire le temps par des valeurs négatives. Supposons que nous voulons soustraire le temps de 2 jours, nous pouvons le faire:
<span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-06-16 14:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P2D'</span></span><span>); </span><span><span class="hljs-comment">// 2ciel</span></span><span>
</span><span><span class="hljs-variable">$interval</span></span><span>->invert = </span><span><span class="hljs-number">1</span></span><span>; </span><span><span class="hljs-comment">// L'inversez-le en valeur négative</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
Le résultat de la sortie est:
<span><span><span class="hljs-number">2025-06-14 14:00:00</span></span><span>
</span></span>
En définissant la propriété Invert sur 1, DateInterval représentera un intervalle de temps négatif, réalisant ainsi l'opération de soustraction de temps.
Date_add prend également en charge l'utilisation d'intervalles de temps plus complexes. Par exemple, vous pouvez ajouter plusieurs années, mois, jours, etc. en même temps:
<span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-06-16 14:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P1Y2M5D'</span></span><span>); </span><span><span class="hljs-comment">// Augmenter1Année2Mois5ciel</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
Le résultat de la sortie est:
<span><span><span class="hljs-number">2026-08-21 14:00:00</span></span><span>
</span></span>
Dans cet exemple, nous avons ajouté 1 an, 2 mois et 5 jours.
Date_add est une fonction très utile en PHP qui peut nous aider à ajouter et à soustraire les dates et les heures. En combinant les objets DateTime et DateInterval , nous pouvons gérer de manière flexible les exigences de calcul de divers intervalles de temps. Qu'il s'agisse d'ajout de jours, d'heures, de minutes ou d'ajout complexe de plusieurs unités de temps, il peut être facilement traité. Dans le développement réel, il est très important de maîtriser ces opérations de date et de temps, ce qui peut considérablement améliorer l'efficacité de notre logique de temps de traitement.