Kaip PHP naudoti date_sub() funkciją

Kaip Php Naudoti Date Sub Funkcija



The date_sub() yra funkcija DataLaikas klasė, kuri yra PHP datos ir laiko pratęsimo dalis. Jis naudojamas tam tikram intervalui atimti iš nurodytos datos. Jis gali būti naudojamas būsimai datai apskaičiuoti iš esamos datos atimant vieną ar daugiau dienų, mėnesių ar metų. The date_sub() funkcija grąžina naują DataLaikas objektas, nurodantis datą ir laiką po skaičiavimo atlikimo.

Pagrindinė sintaksė

Naudojimo sintaksė date_sub() funkcija pateikta žemiau:

data_sub ( DataLaikas $objektas , DateInterval $intervalas )

Čia $objektas yra DataLaikas objektas, iš kurio norite atimti intervalą, ir $intervalas yra DateInterval objektas, nurodantis intervalą, kurį norite atimti. Atminkite, kad norint naudoti reikia abu argumentus date_sub() tinkamai veikti.







Darbas su DateInterval

Norėdami naudoti date_sub() funkciją, turite sukurti a DateInterval objektas, nurodantis laiką, kurį norite atimti iš pradinės datos ir laiko. DateInterval objektus galima sukurti naudojant DateInterval konstruktorius. Konstruktorius paima eilutės parametrą, kuris nurodo intervalą tokiu formatu kaip P1D (viena diena), P1M (vienas mėnuo), P1Y (vieneri metai) ir P1DT1H (viena diena ir viena valanda).



Pavyzdžiai

// Atimti vieną dieną
$intervalas = naujas DateInterval ( 'P1D' ) ; // Atimti vieną mėnesį
$intervalas = naujas DateInterval ( „P1M“ ) ;

// Atimti vienerius metus
$intervalas = naujas DateInterval ( „P1Y“ ) ;

Kaip naudoti PHP date_sub() funkciją

Kai turėsite a DateInterval objektą, galite jį derinti su a DataLaikas objektą, norėdami apskaičiuoti naują datą-laiką. Štai pavyzdys, kuris iš dabartinės datos atima vieną dieną:





$datetime = naujas DataLaikas ( ) ;

$intervalas = naujas DateInterval ( 'P1D' ) ;

data_sub ( $datetime , $intervalas ) ;

aidas $datetime -> formatu ( „Y-m-d H:i:s“ ) ;

?>

Kaip matote, naujas datos laikas yra viena diena anksčiau nei dabartinė data.





Taip pat galima atimti valandas, minutes ir sekundes iš DateTime objekto naudojant date_sub() funkcija. Norėdami atimti valandas, galite perduoti datos intervalą kaip PT1H, o tai reiškia, kad atimkite vieną valandą. Pavyzdžiui, apsvarstykite šį kodą:





$datetime = naujas DataLaikas ( „2023-05-16 14:43:00“ ) ;

data_sub ( $datetime , naujas DateInterval ( „PT1H“ ) ) ;

aidas $datetime -> formatu ( „Y-m-d H:i:s“ ) ;

?>

Tai atima vieną valandą iš DateTime objekto ir atnaujina objektą nauja verte. Naują vertę galite pasiekti naudodami formatas () DateTime objekto funkcija.

1 pavyzdys: skirtingų intervalų atėmimas

The date_sub() funkcija leidžia atimti įvairius intervalus, ne tik dienas. Panagrinėkime scenarijų, kai norime atimti 2 valandas ir 30 minučių iš nurodytos datos ir laiko.



$data = naujas DataLaikas ( '2023-11-02 10:32:45' ) ;

$intervalas = naujas DateInterval ( 'PT1H15M' ) ;

data_sub ( $data , $intervalas ) ;

aidas $data -> formatu ( 'Y-m-d H:i:s' ) ;

?>

Šiame pavyzdyje sukuriame DateTime objektą, vaizduojantį datą ir laiką „2023-11-02 10:32:45“ . Taip pat kuriame a DateInterval objektas, vaizduojantis 1 valandos ir 15 minučių laikotarpį, naudojant „PT1H15M“ formatą. Tada mes naudojame date_sub() funkcija atimti intervalą iš datos ir laiko.

2 pavyzdys: kelių intervalų atėmimas

Taip pat galite naudoti date_sub() funkcija atimti kelis intervalus iš DateTime objekto. Sintaksė paprasta: tiesiog sukurkite naują DateInterval objektą kiekvienam intervalui, kurį norite atimti, ir perduokite juos visus date_sub() veikia kaip masyvas.



$intervalai = masyvas (

naujas DateInterval ( „P1Y“ ) ,

naujas DateInterval ( „P6M“ ) ,

naujas DateInterval ( 'P3D' )

) ;

$datetime = naujas DataLaikas ( ) ;

kiekvienam ( $intervalai kaip $intervalas ) {

data_sub ( $datetime , $intervalas ) ;

}

aidas $datetime -> formatu ( „Y-m-d H:i:s“ ) ;

?>

Šiame pavyzdyje iš datos atėmėme vienerius metus, šešis mėnesius ir tris dienas.

3 pavyzdys: date_sub() su laiko juostomis

Vienas dalykas, kurį reikia žinoti naudojant date_sub() funkcija yra ta, kad ji gali turėti įtakos jūsų laiko juostai DataLaikas objektas. Pagal numatytuosius nustatymus DataLaikas objektai naudoja jūsų serverio laiko juostą. Tačiau, jei norite dirbti su kita laiko juosta, galite ją aiškiai nustatyti naudodami setTimezone() metodas.



$datetime = naujas DataLaikas ( 'dabar' , naujas DateTimeZone ( „Amerika/Niujorkas“ ) ) ;

$intervalas = naujas DateInterval ( 'P1D' ) ;

data_sub ( $datetime , $intervalas ) ;

aidas $datetime -> formatu ( „Y-m-d H:i:s“ ) ;

?>

Šiame pavyzdyje laiko juostą nustatėme į Amerika/Niujorkas ir iš datos laiko atėmėme vieną dieną.

Atimant intervalus naudojant date_sub() funkcija, svarbu atkreipti dėmesį, kad gauta data koreguojama automatiškai, jei ji tampa negaliojanti.

Išvada

The date_sub() PHP funkcija suteikia patogų būdą atimti intervalus iš DateTime objektų. Naudodami šią funkciją kūrėjai gali lengvai atlikti tokias operacijas kaip dienų, valandų, minučių ar sudėtingų intervalų atėmimas iš nurodytos datos ir laiko. The date_sub() funkcija suteikia lankstumo ir tikslumo tvarkant datos skaičiavimus, todėl tai yra vertingas įrankis dirbant su datomis ir laiku PHP programose.