Cum se utilizează funcția date_sub() în PHP

Cum Se Utilizeaza Functia Date Sub In Php



The data_sub() este o funcție a DateTime clasa, care face parte din extensia de dată și oră a PHP. Este folosit pentru a scădea un interval specificat dintr-o dată dată. Poate fi folosit pentru a calcula o dată viitoare scăzând una sau mai multe zile, luni sau ani din data curentă. The data_sub() funcția returnează un nou DateTime obiect reprezentând data și ora după efectuarea calculului.

Sintaxa de bază

Sintaxa de utilizare data_sub() functia este data mai jos:

data_sub ( DateTime $obiect , DataInterval $interval )

Aici, $obiect este DateTime obiect din care doriți să scădeți intervalul și $interval este DataInterval obiect care specifică intervalul pe care doriți să-l scădeți. Rețineți că ambele argumente sunt necesare pentru a utiliza data_sub() functioneaza corect.





Lucrul cu DateInterval

Pentru a utiliza data_sub() funcție, trebuie să creați o DataInterval obiect care specifică perioada de timp pe care doriți să o scădeți din data-ora inițială. DataInterval obiectele pot fi create folosind DataInterval constructor. Constructorul preia un parametru șir care specifică intervalul într-un format precum P1D (o zi), P1M (o lună), P1Y (un an) și P1DT1H (o zi și o oră).



Exemple

// Scăderea unei zile
$interval = nou DataInterval ( „P1D” ) ; // Scădeți o lună
$interval = nou DataInterval ( „P1M” ) ;

// Scăderea unui an
$interval = nou DataInterval ( „P1Y” ) ;

Cum se utilizează funcția PHP date_sub().

Odată ce ai un DataInterval obiect, îl puteți combina cu a DateTime obiect pentru a calcula o nouă dată-oră. Iată un exemplu care scade o zi din data curentă:





$datetime = nou DateTime ( ) ;

$interval = nou DataInterval ( „P1D” ) ;

data_sub ( $datetime , $interval ) ;

ecou $datetime -> format ( „A-m-d H:i:s” ) ;

?>

După cum puteți vedea, noua dată și oră este cu o zi mai devreme decât data curentă.





De asemenea, este posibil să scădeți ore, minute și secunde dintr-un obiect DateTime folosind data_sub() funcţie. Pentru a scădea ore, puteți trece intervalul de date ca PT1H, ceea ce înseamnă scădeți o oră. De exemplu, luați în considerare următorul cod:





$datetime = nou DateTime ( '2023-05-16 14:43:00' ) ;

data_sub ( $datetime , nou DataInterval ( „PT1H” ) ) ;

ecou $datetime -> format ( „A-m-d H:i:s” ) ;

?>

Aceasta scade o oră din obiectul DateTime și actualizează obiectul cu noua valoare. Puteți accesa noua valoare utilizând format() funcția obiectului DateTime.

Exemplul 1: Scăderea diferitelor intervale

The data_sub() funcția permite scăderea diferitelor intervale, nu doar zile. Să luăm în considerare un scenariu în care dorim să scădem 2 ore și 30 de minute dintr-o dată și oră dată.



$date = nou DateTime ( '2023-11-02 10:32:45' ) ;

$interval = nou DataInterval ( „PT1H15M” ) ;

data_sub ( $date , $interval ) ;

ecou $date -> format ( „A-m-d H:i:s” ) ;

?>

În acest exemplu, creăm un obiect DateTime reprezentând data și ora „2023-11-02 10:32:45” . De asemenea, creăm un DataInterval obiect reprezentând o perioadă de 1 oră și 15 minute folosind formatul „PT1H15M”. Apoi folosim data_sub() funcția de scădere a intervalului din dată și oră.

Exemplul 2: Scăderea mai multor intervale

De asemenea, puteți utiliza data_sub() funcție pentru a scădea mai multe intervale dintr-un obiect DateTime. Sintaxa este simplă: trebuie doar să creați un nou obiect DateInterval pentru fiecare interval pe care doriți să îl scădeți și să le transmiteți pe toate data_sub() functioneaza ca o matrice.



$intervale = matrice (

nou DataInterval ( „P1Y” ) ,

nou DataInterval ( „P6M” ) ,

nou DataInterval ( „P3D” )

) ;

$datetime = nou DateTime ( ) ;

pentru fiecare ( $intervale la fel de $interval ) {

data_sub ( $datetime , $interval ) ;

}

ecou $datetime -> format ( „A-m-d H:i:s” ) ;

?>

În acest exemplu, am scăzut un an, șase luni și trei zile de la dată.

Exemplul 3: date_sub() cu fusuri orare

Un lucru de care trebuie să fii conștient atunci când folosești data_sub() funcția este că poate afecta fusul orar al dvs DateTime obiect. În mod implicit, DateTime obiectele folosesc fusul orar al serverului dvs. Cu toate acestea, dacă doriți să lucrați cu un alt fus orar, îl puteți seta în mod explicit folosind setTimezone() metodă.



$datetime = nou DateTime ( 'acum' , nou DateTimeZone ( „America/New_York” ) ) ;

$interval = nou DataInterval ( „P1D” ) ;

data_sub ( $datetime , $interval ) ;

ecou $datetime -> format ( „A-m-d H:i:s” ) ;

?>

În acest exemplu, am setat fusul orar la America/New_York și am scăzut o zi din dată și oră.

La scăderea intervalelor folosind data_sub() funcție, este important de reținut că data rezultată este ajustată automat dacă devine invalidă.

Concluzie

The data_sub() funcția în PHP oferă o modalitate convenabilă de a scădea intervalele din obiectele DateTime. Folosind această funcție, dezvoltatorii pot efectua cu ușurință operațiuni precum scăderea zilelor, orelor, minutelor sau intervalelor complexe dintr-o dată și oră dată. The data_sub() funcția oferă flexibilitate și acuratețe în gestionarea calculelor date, făcându-l un instrument valoros pentru lucrul cu datele și orele în aplicațiile PHP.