Hvordan bruke date_sub()-funksjonen i PHP

Hvordan Bruke Date Sub Funksjonen I Php



De date_sub() er en funksjon av Dato tid klasse, som er en del av PHPs dato- og tidsforlengelse. Den brukes til å trekke et spesifisert intervall fra en gitt dato. Den kan brukes til å beregne en fremtidig dato ved å trekke fra en eller flere dager, måneder eller år fra gjeldende dato. De date_sub() funksjonen returnerer en ny Dato tid objekt som representerer datoen og klokkeslettet etter at beregningen er utført.

Grunnleggende syntaks

Syntaksen for bruk date_sub() funksjonen er gitt nedenfor:

date_sub ( Dato tid $objekt , Datointervall $intervall )

Her, $objekt er den Dato tid objekt du vil trekke intervallet fra, og $intervall er den Datointervall objekt som spesifiserer intervallet du vil trekke fra. Merk at begge argumentene kreves for å bruke date_sub() fungere riktig.







Arbeid med DateInterval

For å bruke date_sub() funksjon, må du opprette en Datointervall objekt som spesifiserer hvor lang tid du vil trekke fra din opprinnelige dato-klokkeslett. Datointervall objekter kan opprettes ved hjelp av Datointervall konstruktør. Konstruktøren tar en strengparameter som spesifiserer intervallet i et format som P1D (én dag), P1M (én måned), P1Y (ett år) og P1DT1H (én dag og én time).



Eksempler

// Trekk fra en dag
$intervall = ny Datointervall ( 'P1D' ) ; // Trekk fra en måned
$intervall = ny Datointervall ( 'P1M' ) ;

// Trekk fra ett år
$intervall = ny Datointervall ( 'P1Y' ) ;

Hvordan bruke PHP date_sub()-funksjonen

Når du har en Datointervall objekt, kan du kombinere det med en Dato tid objekt for å beregne en ny dato-klokkeslett. Her er et eksempel som trekker én dag fra gjeldende dato:





$datetime = ny Dato tid ( ) ;

$intervall = ny Datointervall ( 'P1D' ) ;

date_sub ( $datetime , $intervall ) ;

ekko $datetime -> format ( 'Å-m-d H:i:s' ) ;

?>

Som du kan se, er den nye datoen én dag tidligere enn gjeldende dato.





Det er også mulig å trekke timer, minutter og sekunder fra et DateTime-objekt ved å bruke date_sub() funksjon. For å trekke fra timer kan du overføre datointervallet som PT1H, som betyr å trekke fra en time. Tenk for eksempel på følgende kode:





$datetime = ny Dato tid ( '2023-05-16 14:43:00' ) ;

date_sub ( $datetime , ny Datointervall ( 'PT1H' ) ) ;

ekko $datetime -> format ( 'Å-m-d H:i:s' ) ;

?>

Dette trekker én time fra DateTime-objektet og oppdaterer objektet med den nye verdien. Du kan få tilgang til den nye verdien ved å bruke format() funksjonen til DateTime-objektet.

Eksempel 1: Subtrahere ulike intervaller

De date_sub() funksjonen gjør det mulig å trekke fra ulike intervaller, ikke bare dager. La oss vurdere et scenario der vi ønsker å trekke 2 timer og 30 minutter fra en gitt dato og klokkeslett.



$date = ny Dato tid ( '2023-11-02 10:32:45' ) ;

$intervall = ny Datointervall ( 'PT1H15M' ) ;

date_sub ( $date , $intervall ) ;

ekko $date -> format ( 'Å-m-d H:i:s' ) ;

?>

I dette eksemplet lager vi et DateTime-objekt som representerer datoen og klokkeslettet '2023-11-02 10:32:45' . Vi lager også en Datointervall objekt som representerer en periode på 1 time og 15 minutter ved bruk av 'PT1H15M'-formatet. Vi bruker da date_sub() funksjon for å trekke intervallet fra dato og klokkeslett.

Eksempel 2: Subtrahere flere intervaller

Du kan også bruke date_sub() funksjon for å trekke fra flere intervaller fra et DateTime-objekt. Syntaksen er enkel: bare lag et nytt DateInterval-objekt for hvert intervall du vil trekke fra, og send dem alle til date_sub() fungere som en matrise.



$intervaller = array (

ny Datointervall ( 'P1Y' ) ,

ny Datointervall ( 'P6M' ) ,

ny Datointervall ( 'P3D' )

) ;

$datetime = ny Dato tid ( ) ;

for hver ( $intervaller som $intervall ) {

date_sub ( $datetime , $intervall ) ;

}

ekko $datetime -> format ( 'Å-m-d H:i:s' ) ;

?>

I dette eksemplet trakk vi ett år, seks måneder og tre dager fra datoen.

Eksempel 3: date_sub() med tidssoner

En ting du må være klar over når du bruker date_sub() funksjonen er at det kan påvirke tidssonen til din Dato tid gjenstand. Som standard, Dato tid objekter bruker tidssonen til serveren din. Men hvis du ønsker å jobbe med en annen tidssone, kan du angi den eksplisitt ved å bruke setTimezone() metode.



$datetime = ny Dato tid ( 'nå' , ny DatoTidssone ( 'Amerika/New_York' ) ) ;

$intervall = ny Datointervall ( 'P1D' ) ;

date_sub ( $datetime , $intervall ) ;

ekko $datetime -> format ( 'Å-m-d H:i:s' ) ;

?>

I dette eksemplet satte vi tidssonen til America/New_York og trakk en dag fra dato og klokkeslett.

Når du trekker fra intervaller ved å bruke date_sub() funksjon, er det viktig å merke seg at den resulterende datoen justeres automatisk hvis den blir ugyldig.

Konklusjon

De date_sub() funksjon i PHP gir en praktisk måte å trekke intervaller fra DateTime-objekter på. Ved å bruke denne funksjonen kan utviklere enkelt utføre operasjoner som å trekke fra dager, timer, minutter eller komplekse intervaller fra en gitt dato og klokkeslett. De date_sub() funksjonen tilbyr fleksibilitet og nøyaktighet i håndtering av datoberegninger, noe som gjør den til et verdifullt verktøy for å arbeide med datoer og klokkeslett i PHP-applikasjoner.