Paano Gamitin ang date_sub() Function sa PHP

Paano Gamitin Ang Date Sub Function Sa Php



Ang date_sub() ay isang function ng PetsaOras class, na bahagi ng extension ng petsa at oras ng PHP. Ito ay ginagamit upang ibawas ang isang tinukoy na pagitan mula sa isang ibinigay na petsa. Maaari itong magamit upang kalkulahin ang isang hinaharap na petsa sa pamamagitan ng pagbabawas ng isa o higit pang mga araw, buwan, o taon mula sa kasalukuyang petsa. Ang date_sub() function ay nagbabalik ng bago PetsaOras bagay na kumakatawan sa petsa at oras pagkatapos magawa ang pagkalkula.

Pangunahing Syntax

Ang syntax para sa paggamit date_sub() function ay ibinigay sa ibaba:

date_sub ( PetsaOras $object , DateInterval $interval )

dito, $object ay ang PetsaOras bagay na gusto mong ibawas ang pagitan mula sa, at $interval ay ang DateInterval bagay na tumutukoy sa pagitan na gusto mong ibawas. Tandaan na ang parehong mga argumento ay kinakailangan upang magamit ang date_sub() gumana nang tama.







Nagtatrabaho sa DateInterval

Upang gamitin ang date_sub() function, kailangan mong lumikha ng isang DateInterval bagay na tumutukoy sa dami ng oras na gusto mong ibawas mula sa iyong orihinal na petsa-oras. DateInterval maaaring malikha ang mga bagay gamit ang DateInterval tagabuo. Ang constructor ay kumukuha ng string parameter na tumutukoy sa pagitan sa isang format tulad ng P1D (isang araw), P1M (isang buwan), P1Y (isang taon), at P1DT1H (isang araw at isang oras).



Mga halimbawa

// Magbawas ng isang araw
$interval = bago DateInterval ( 'P1D' ) ; // Magbawas ng isang buwan
$interval = bago DateInterval ( 'P1M' ) ;

// Magbawas ng isang taon
$interval = bago DateInterval ( 'P1Y' ) ;

Paano Gamitin ang PHP date_sub() Function

Kapag mayroon kang isang DateInterval bagay, maaari mo itong pagsamahin sa a PetsaOras object upang makalkula ang isang bagong petsa-oras. Narito ang isang halimbawa na nagbabawas ng isang araw mula sa kasalukuyang petsa:





$datetime = bago PetsaOras ( ) ;

$interval = bago DateInterval ( 'P1D' ) ;

date_sub ( $datetime , $interval ) ;

echo $datetime -> pormat ( 'Y-m-d H:i:s' ) ;

?>

Gaya ng nakikita mo, ang bagong datetime ay isang araw na mas maaga kaysa sa kasalukuyang petsa.





Posible rin na ibawas ang mga oras, minuto, at segundo mula sa isang DateTime object gamit ang date_sub() function. Upang ibawas ang mga oras, maaari mong ipasa ang pagitan ng petsa bilang PT1H, na nangangahulugang ibawas ang isang oras. Halimbawa, isaalang-alang ang sumusunod na code:





$datetime = bago PetsaOras ( '2023-05-16 14:43:00' ) ;

date_sub ( $datetime , bago DateInterval ( 'PT1H' ) ) ;

echo $datetime -> pormat ( 'Y-m-d H:i:s' ) ;

?>

Ibinabawas nito ang isang oras mula sa object ng DateTime at ina-update ang object gamit ang bagong value. Maaari mong ma-access ang bagong halaga sa pamamagitan ng paggamit ng format() function ng DateTime object.

Halimbawa 1: Pagbabawas ng Iba't ibang Pagitan

Ang date_sub() function na nagbibigay-daan para sa pagbabawas ng iba't ibang mga pagitan, hindi lamang araw. Isaalang-alang natin ang isang senaryo kung saan gusto nating ibawas ang 2 oras at 30 minuto mula sa isang ibinigay na petsa at oras.



$date = bago PetsaOras ( '2023-11-02 10:32:45' ) ;

$interval = bago DateInterval ( 'PT1H15M' ) ;

date_sub ( $date , $interval ) ;

echo $date -> pormat ( 'Y-m-d H:i:s' ) ;

?>

Sa halimbawang ito, lumikha kami ng DateTime object na kumakatawan sa petsa at oras “2023-11-02 10:32:45” . Lumilikha din kami ng isang DateInterval bagay na kumakatawan sa tagal ng 1 oras at 15 minuto gamit ang format na “PT1H15M”. Pagkatapos ay ginagamit namin ang date_sub() function upang ibawas ang pagitan mula sa petsa at oras.

Halimbawa 2: Pagbabawas ng Maramihang Pagitan

Maaari mo ring gamitin ang date_sub() function na upang ibawas ang maramihang mga pagitan mula sa isang DateTime object. Ang syntax ay simple: lumikha lamang ng bagong DateInterval object para sa bawat pagitan na gusto mong ibawas, at ipasa ang lahat ng ito sa date_sub() function bilang isang array.



$interval = array (

bago DateInterval ( 'P1Y' ) ,

bago DateInterval ( 'P6M' ) ,

bago DateInterval ( 'P3D' )

) ;

$datetime = bago PetsaOras ( ) ;

foreach ( $interval bilang $interval ) {

date_sub ( $datetime , $interval ) ;

}

echo $datetime -> pormat ( 'Y-m-d H:i:s' ) ;

?>

Sa halimbawang ito, ibinawas namin ang isang taon, anim na buwan, at tatlong araw mula sa petsa.

Halimbawa 3: date_sub() na may Timezones

Isang bagay na kailangan mong malaman kapag ginagamit ang date_sub() ang function ay maaari itong makaapekto sa timezone ng iyong PetsaOras bagay. Bilang default, PetsaOras ginagamit ng mga object ang timezone ng iyong server. Gayunpaman, kung gusto mong magtrabaho sa ibang timezone, maaari mo itong itakda nang tahasan gamit ang setTimezone() paraan.



$datetime = bago PetsaOras ( 'ngayon' , bago DateTimeZone ( 'America/New_York' ) ) ;

$interval = bago DateInterval ( 'P1D' ) ;

date_sub ( $datetime , $interval ) ;

echo $datetime -> pormat ( 'Y-m-d H:i:s' ) ;

?>

Sa halimbawang ito, itinakda namin ang timezone sa America/New_York at ibinawas ang isang araw mula sa datetime.

Kapag binabawasan ang mga pagitan gamit ang date_sub() function, mahalagang tandaan na ang resultang petsa ay awtomatikong isinasaayos kung ito ay magiging di-wasto.

Konklusyon

Ang date_sub() Ang function sa PHP ay nagbibigay ng isang maginhawang paraan upang ibawas ang mga agwat mula sa mga bagay na DateTime. Sa pamamagitan ng paggamit ng function na ito, madaling maisagawa ng mga developer ang mga operasyon tulad ng pagbabawas ng mga araw, oras, minuto, o kumplikadong mga agwat mula sa isang ibinigay na petsa at oras. Ang date_sub() Nag-aalok ang function ng flexibility at katumpakan sa paghawak ng mga kalkulasyon ng petsa, na ginagawa itong isang mahalagang tool para sa pagtatrabaho sa mga petsa at oras sa mga PHP application.