Position actuelle: Accueil> Derniers articles> Quelles sont les différences entre les fonctions date_sub et date_add? Comment utiliser ces deux fonctions en conjonction?

Quelles sont les différences entre les fonctions date_sub et date_add? Comment utiliser ces deux fonctions en conjonction?

gitbox 2025-09-30

1. Fonction Date_add ()

La fonction date_add () est utilisée pour ajouter un intervalle de temps à un objet DateTime . Il accepte deux paramètres: un objet DateTime et un objet DateInterval représentant l'intervalle de temps. L'intervalle de temps peut être une combinaison d'unités telles que l'année, le mois, le jour, l'heure et la minute.

grammaire:

 <span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(DateTime </span><span><span class="hljs-variable">$datetime</span></span><span>, DateInterval </span><span><span class="hljs-variable">$interval</span></span><span>): DateTime
</span></span>

paramètre:

  • $ DateTime : l'objet DateTime pour effectuer l'opération d'addition.

  • $ Interval : un objet DateInterval qui indique l'intervalle de temps à ajouter.

Exemple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</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-01-01'</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">'P1D'</span></span><span>);  </span><span><span class="hljs-comment">// Ajouter à1ciel</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$datetime</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">$datetime</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'</span></span><span>);  </span><span><span class="hljs-comment">// Sortir: 2025-01-02</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans le code ci-dessus, nous créons un objet DateTime et l'avons initialisée en «2025-01-01» , puis nous créons un objet DateInterval qui signifie «Ajouter 1 jour», et enfin ajoutant l'intervalle de temps à la date à travers la fonction date_add () .

2. Date_sub () Fonction

Contrairement à Date_add () , la fonction date_sub () est utilisée pour soustraire un intervalle de temps à partir d'un objet DateTime . Sa fonction est fondamentalement la même que Date_add () , mais sa fonction est de réduire le temps plutôt que d'augmenter.

grammaire:

 <span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(DateTime </span><span><span class="hljs-variable">$datetime</span></span><span>, DateInterval </span><span><span class="hljs-variable">$interval</span></span><span>): DateTime
</span></span>

paramètre:

  • $ DateTime : l'objet DateTime pour effectuer l'opération de soustraction.

  • $ Interval : un objet DateInterval qui indique l'intervalle de temps qui doit être soustrait.

Exemple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</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-01-01'</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">'P1D'</span></span><span>);  </span><span><span class="hljs-comment">// moins1ciel</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(</span><span><span class="hljs-variable">$datetime</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">$datetime</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'</span></span><span>);  </span><span><span class="hljs-comment">// Sortir: 2024-12-31</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans cet exemple, nous créons également un objet DateTime et l'initialisons en «2025-01-01» , puis créons un objet DateInterval qui signifie «soustraire par 1 jour», en soustrayant l'intervalle de temps à partir de la date à la fonction de date_sub () .

3. La différence entre date_add () et date_sub ()

  • Différence fonctionnelle : date_add () est utilisée pour ajouter des intervalles de temps aux dates, tandis que date_sub () est utilisé pour soustraire les intervalles de temps des dates.

  • Ordre des paramètres : Bien que l'ordre des paramètres et l'utilisation de ces deux fonctions soient fondamentalement les mêmes, leurs effets sont exactement le contraire. Date_add () effectue une opération d'addition, date_sub () effectue un opération de soustraction.

4. Comment utiliser Date_add () et Date_sub () en combinaison?

Parfois, lorsque vous traitez des opérations de date complexes, nous devrons peut-être utiliser date_add () et date_sub () en même temps pour effectuer plusieurs opérations de temps différentes à une date. Par exemple, une date est d'abord ajoutée à deux mois, puis soustraite à une semaine. Nous pouvons utiliser ces deux fonctions en combinaison pour atteindre cette exigence.

Exemple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</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-01-01'</span></span><span>);

</span><span><span class="hljs-comment">// premier pas,Ajouter à2Mois</span></span><span>
</span><span><span class="hljs-variable">$interval_add</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">'P2M'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval_add</span></span><span>);

</span><span><span class="hljs-comment">// Étape 2,moins1Semaines</span></span><span>
</span><span><span class="hljs-variable">$interval_sub</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">'P1W'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval_sub</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</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'</span></span><span>);  </span><span><span class="hljs-comment">// Sortir: 2025-03-04</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans cet exemple, nous ajoutons d'abord la date de deux mois à l'aide de date_add () , puis de soustraire une semaine du résultat en utilisant date_sub () . Le résultat final est «2025-03-04» .

5. Scénarios communs à l'aide de Date_add () et Date_sub ()

  • Calculez la date future ou passée : si vous devez calculer la date future ou passée, vous pouvez utiliser date_add () et date_sub () pour ajouter ou soustraire des opérations.

  • Gestion de la date et du décalage horaire : ces fonctions sont utiles lors du calcul de la différence entre une date et la date actuelle. En utilisant d'abord date_add () ou date_sub () pour ajuster la date, puis en comparant, le problème de fonctionnement de la date complexe peut être résolu efficacement.

  • Tâches de synchronisation et planification : Dans certaines tâches automatisées, il peut être nécessaire d'ajuster le temps d'exécution de la tâche en fonction des intervalles de temps spécifiques. date_add () et date_sub () peuvent définir de manière flexible différents points de temps pour chaque tâche.