Comment utiliser la fonction date_sub() en PHP

Comment Utiliser La Fonction Date Sub En Php



Le date_sub() est une fonction de la DateHeure classe, qui fait partie de l'extension de date et d'heure de PHP. Il est utilisé pour soustraire un intervalle spécifié d'une date donnée. Il peut être utilisé pour calculer une date future en soustrayant un ou plusieurs jours, mois ou années de la date actuelle. Le date_sub() la fonction renvoie un nouveau DateHeure objet représentant la date et l'heure après que le calcul a été effectué.

Syntaxe de base

La syntaxe d'utilisation date_sub() fonction est donnée ci-dessous :

date_sub ( DateHeure $objet , Intervalle de date $intervalle )

Ici, $objet est le DateHeure l'objet dont vous voulez soustraire l'intervalle, et $intervalle est le Intervalle de date objet qui spécifie l'intervalle que vous souhaitez soustraire. Notez que les deux arguments sont requis pour utiliser le date_sub() fonctionner correctement.







Travailler avec DateInterval

Pour utiliser le date_sub() fonction, vous devez créer une Intervalle de date objet qui spécifie la durée que vous souhaitez soustraire de votre date-heure d'origine. Intervalle de date les objets peuvent être créés à l'aide de Intervalle de date constructeur. Le constructeur prend un paramètre de chaîne qui spécifie l'intervalle dans un format tel que P1D (un jour), P1M (un mois), P1Y (un an) et P1DT1H (un jour et une heure).



Exemples

// Soustraire un jour
$intervalle = nouveau Intervalle de date ( 'P1D' ) ; // Soustraire un mois
$intervalle = nouveau Intervalle de date ( 'P1M' ) ;

// Soustraire un an
$intervalle = nouveau Intervalle de date ( 'P1Y' ) ;

Comment utiliser la fonction PHP date_sub()

Une fois que vous avez un Intervalle de date objet, vous pouvez le combiner avec un DateHeure objet pour calculer une nouvelle date-heure. Voici un exemple qui soustrait un jour à la date actuelle :





$dateheure = nouveau DateHeure ( ) ;

$intervalle = nouveau Intervalle de date ( 'P1D' ) ;

date_sub ( $dateheure , $intervalle ) ;

écho $dateheure -> format ( 'A-m-j H:i:s' ) ;

?>

Comme vous pouvez le constater, la nouvelle date et heure est antérieure d'un jour à la date actuelle.





Il est également possible de soustraire des heures, des minutes et des secondes d'un objet DateTime à l'aide de la propriété date_sub() fonction. Pour soustraire des heures, vous pouvez passer l'intervalle de date comme PT1H, ce qui signifie soustraire une heure. Par exemple, considérez le code suivant :





$dateheure = nouveau DateHeure ( '2023-05-16 14:43:00' ) ;

date_sub ( $dateheure , nouveau Intervalle de date ( 'PT1H' ) ) ;

écho $dateheure -> format ( 'A-m-j H:i:s' ) ;

?>

Cela soustrait une heure de l'objet DateTime et met à jour l'objet avec la nouvelle valeur. Vous pouvez accéder à la nouvelle valeur en utilisant le format() fonction de l'objet DateTime.

Exemple 1 : soustraire différents intervalles

Le date_sub() La fonction permet de soustraire divers intervalles, pas seulement des jours. Considérons un scénario où nous voulons soustraire 2 heures et 30 minutes d'une date et d'une heure données.



$date = nouveau DateHeure ( '2023-11-02 10:32:45' ) ;

$intervalle = nouveau Intervalle de date ( 'PT1H15M' ) ;

date_sub ( $date , $intervalle ) ;

écho $date -> format ( 'A-m-j H:i:s' ) ;

?>

Dans cet exemple, nous créons un objet DateTime représentant la date et l'heure '2023-11-02 10:32:45' . Nous créons également un Intervalle de date objet représentant une période de 1 heure et 15 minutes au format « PT1H15M ». On utilise alors le date_sub() fonction pour soustraire l'intervalle de la date et de l'heure.

Exemple 2 : soustraire plusieurs intervalles

Vous pouvez également utiliser le date_sub() fonction pour soustraire plusieurs intervalles d'un objet DateTime. La syntaxe est simple : créez simplement un nouvel objet DateInterval pour chaque intervalle que vous souhaitez soustraire, et transmettez-les tous au date_sub() fonctionner comme un tableau.



$ intervalles = déployer (

nouveau Intervalle de date ( 'P1Y' ) ,

nouveau Intervalle de date ( 'P6M' ) ,

nouveau Intervalle de date ( 'P3D' )

) ;

$dateheure = nouveau DateHeure ( ) ;

pour chaque ( $ intervalles comme $intervalle ) {

date_sub ( $dateheure , $intervalle ) ;

}

écho $dateheure -> format ( 'A-m-j H:i:s' ) ;

?>

Dans cet exemple, nous avons soustrait un an, six mois et trois jours à la date.

Exemple 3 : date_sub() avec fuseaux horaires

Une chose dont vous devez être conscient lorsque vous utilisez le date_sub() fonction est qu'elle peut affecter le fuseau horaire de votre DateHeure objet. Par défaut, DateHeure les objets utilisent le fuseau horaire de votre serveur. Toutefois, si vous souhaitez travailler avec un fuseau horaire différent, vous pouvez le définir explicitement à l'aide de la setTimezone() méthode.



$dateheure = nouveau DateHeure ( 'maintenant' , nouveau DateTimeZone ( 'Amérique/New_York' ) ) ;

$intervalle = nouveau Intervalle de date ( 'P1D' ) ;

date_sub ( $dateheure , $intervalle ) ;

écho $dateheure -> format ( 'A-m-j H:i:s' ) ;

?>

Dans cet exemple, nous définissons le fuseau horaire sur America/New_York et soustrayons un jour de la date/heure.

Lors de la soustraction d'intervalles à l'aide de la date_sub() fonction, il est important de noter que la date résultante est ajustée automatiquement si elle devient invalide.

Conclusion

Le date_sub() La fonction en PHP fournit un moyen pratique de soustraire des intervalles des objets DateTime. En utilisant cette fonction, les développeurs peuvent facilement effectuer des opérations telles que la soustraction de jours, d'heures, de minutes ou d'intervalles complexes à partir d'une date et d'une heure données. Le date_sub() La fonction offre flexibilité et précision dans la gestion des calculs de date, ce qui en fait un outil précieux pour travailler avec les dates et les heures dans les applications PHP.