Com utilitzar la funció date_sub() a PHP

Com Utilitzar La Funcio Date Sub A Php



El data_sub() és una funció de la Data i hora classe, que forma part de l'extensió de data i hora de PHP. S'utilitza per restar un interval determinat d'una data determinada. Es pot utilitzar per calcular una data futura restant un o més dies, mesos o anys de la data actual. El data_sub() funció retorna una nova Data i hora objecte que representa la data i l'hora posterior al càlcul.

Sintaxi bàsica

La sintaxi per utilitzar data_sub() la funció es dona a continuació:

data_sub ( Data i hora $objecte , DataInterval $interval )

Aquí, $objecte és el Data i hora objecte del qual voleu restar l'interval i $interval és el DataInterval objecte que especifica l'interval que voleu restar. Tingueu en compte que els dos arguments són necessaris per utilitzar el data_sub() funcionen correctament.







Treballant amb DateInterval

Per utilitzar el data_sub() funció, heu de crear una DataInterval objecte que especifica la quantitat de temps que voleu restar de la vostra data-hora original. DataInterval els objectes es poden crear amb el DataInterval constructor. El constructor pren un paràmetre de cadena que especifica l'interval en un format com ara P1D (un dia), P1M (un mes), P1Y (un any) i P1DT1H (un dia i una hora).



Exemples

// Resta un dia
$interval = nou DataInterval ( 'P1D' ) ; // Resta un mes
$interval = nou DataInterval ( 'P1M' ) ;

// Resta un any
$interval = nou DataInterval ( 'P1Y' ) ;

Com utilitzar la funció PHP date_sub().

Un cop tingueu un DataInterval objecte, podeu combinar-lo amb a Data i hora objecte per calcular una nova data i hora. Aquí teniu un exemple que resta un dia de la data actual:





$datetime = nou Data i hora ( ) ;

$interval = nou DataInterval ( 'P1D' ) ;

data_sub ( $datetime , $interval ) ;

eco $datetime -> format ( 'Y-m-d H:i:s' ) ;

?>

Com podeu veure, la nova data i hora és un dia abans que la data actual.





També és possible restar hores, minuts i segons d'un objecte DateTime utilitzant el data_sub() funció. Per restar hores, podeu passar l'interval de dates com a PT1H, que significa restar una hora. Per exemple, considereu el codi següent:





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

data_sub ( $datetime , nou DataInterval ( 'PT1H' ) ) ;

eco $datetime -> format ( 'Y-m-d H:i:s' ) ;

?>

Això resta una hora de l'objecte DateTime i actualitza l'objecte amb el nou valor. Podeu accedir al nou valor utilitzant el format () funció de l'objecte DateTime.

Exemple 1: Restant diferents intervals

El data_sub() La funció permet restar diversos intervals, no només dies. Considerem un escenari en què volem restar 2 hores i 30 minuts d'una data i hora determinades.



$data = nou Data i hora ( '2023-11-02 10:32:45' ) ;

$interval = nou DataInterval ( 'PT1H15M' ) ;

data_sub ( $data , $interval ) ;

eco $data -> format ( 'A-m-d H:i:s' ) ;

?>

En aquest exemple, creem un objecte DateTime que representa la data i l'hora “2023-11-02 10:32:45” . També creem un DataInterval objecte que representa un període d'1 hora i 15 minuts amb el format 'PT1H15M'. Després fem servir el data_sub() funció per restar l'interval de la data i l'hora.

Exemple 2: Resta d'intervals múltiples

També podeu utilitzar el data_sub() funció per restar diversos intervals d'un objecte DateTime. La sintaxi és senzilla: només cal que creeu un nou objecte DateInterval per a cada interval que vulgueu restar i passeu-los tots al data_sub() funcionar com a matriu.



$intervals = matriu (

nou DataInterval ( 'P1Y' ) ,

nou DataInterval ( 'P6M' ) ,

nou DataInterval ( 'P3D' )

) ;

$datetime = nou Data i hora ( ) ;

per cadascú ( $intervals com $interval ) {

data_sub ( $datetime , $interval ) ;

}

eco $datetime -> format ( 'Y-m-d H:i:s' ) ;

?>

En aquest exemple, hem restat un any, sis mesos i tres dies de la data.

Exemple 3: date_sub() amb zones horàries

Una cosa que cal tenir en compte quan utilitzeu data_sub() La funció és que pot afectar la zona horària del vostre Data i hora objecte. Per defecte, Data i hora els objectes utilitzen la zona horària del vostre servidor. Tanmateix, si voleu treballar amb una zona horària diferent, podeu configurar-la de manera explícita mitjançant l'opció setTimezone() mètode.



$datetime = nou Data i hora ( 'ara' , nou DataTimeZone ( 'Amèrica/Nova_York' ) ) ;

$interval = nou DataInterval ( 'P1D' ) ;

data_sub ( $datetime , $interval ) ;

eco $datetime -> format ( 'Y-m-d H:i:s' ) ;

?>

En aquest exemple, vam establir la zona horària a Amèrica/Nova_York i vam restar un dia de la data i hora.

En restar intervals utilitzant el data_sub() funció, és important tenir en compte que la data resultant s'ajusta automàticament si no és vàlida.

Conclusió

El data_sub() La funció en PHP proporciona una manera còmoda de restar intervals dels objectes DateTime. Mitjançant aquesta funció, els desenvolupadors poden realitzar fàcilment operacions com ara restar dies, hores, minuts o intervals complexos d'una data i hora determinades. El data_sub() La funció ofereix flexibilitat i precisió en el maneig de càlculs de dates, la qual cosa la converteix en una valuosa eina per treballar amb dates i hores en aplicacions PHP.