Position actuelle: Accueil> Derniers articles> Comment calculer les intervalles de temps en PHP à l'aide de la fonction date_add? Partage d'application pratique

Comment calculer les intervalles de temps en PHP à l'aide de la fonction date_add? Partage d'application pratique

gitbox 2025-06-24

Introduction à la fonction DATE_ADD

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.

Créer un objet DateTime

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.

Créer un objet DateInterval

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>

Utiliser Date_add pour le calcul de l'heure

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>-&gt;</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.

Autres exemples d'applications

1. Augmenter les heures et les minutes

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>-&gt;</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>

2. Réduire le temps

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>-&gt;invert = </span><span><span class="hljs-number">1</span></span><span>;  </span><span><span class="hljs-comment">// L&#39;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>-&gt;</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.

3. Utilisez des intervalles de temps complexes

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>-&gt;</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.

Conclusion

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.