Kā lietot funkciju date_sub() PHP

Ka Lietot Funkciju Date Sub Php



The date_sub() ir funkcija Datums Laiks klase, kas ir daļa no PHP datuma un laika pagarinājuma. To izmanto, lai atņemtu noteiktu intervālu no noteiktā datuma. To var izmantot, lai aprēķinātu nākotnes datumu, no pašreizējā datuma atņemot vienu vai vairākas dienas, mēnešus vai gadus. The date_sub() funkcija atgriež jaunu Datums Laiks objekts, kas attēlo datumu un laiku pēc aprēķina veikšanas.

Pamata sintakse

Sintakse lietošanai date_sub() funkcija ir norādīta zemāk:

date_sub ( Datums Laiks $objekts , Datuma intervāls $intervāls )

Šeit, $objekts ir Datums Laiks objekts, no kura vēlaties atņemt intervālu, un $intervāls ir Datuma intervāls objekts, kas norāda intervālu, kuru vēlaties atņemt. Ņemiet vērā, ka, lai izmantotu, ir nepieciešami abi argumenti date_sub() darbojas pareizi.







Darbs ar DateInterval

Lai izmantotu date_sub() funkciju, jums ir jāizveido a Datuma intervāls objekts, kas norāda laiku, kuru vēlaties atņemt no sākotnējā datuma-laika. Datuma intervāls objektus var izveidot, izmantojot Datuma intervāls konstruktors. Konstruktors izmanto virknes parametru, kas norāda intervālu tādā formātā kā P1D (viena diena), P1M (viens mēnesis), P1Y (viens gads) un P1DT1H (viena diena un viena stunda).



Piemēri

// Atņemiet vienu dienu
$intervāls = jauns Datuma intervāls ( 'P1D' ) ; // Atņemiet vienu mēnesi
$intervāls = jauns Datuma intervāls ( 'P1M' ) ;

// Atņemt vienu gadu
$intervāls = jauns Datuma intervāls ( 'P1Y' ) ;

Kā lietot PHP date_sub() funkciju

Kad jums ir a Datuma intervāls objektu, varat to apvienot ar a Datums Laiks objektu, lai aprēķinātu jaunu datumu-laiku. Šeit ir piemērs, kas no pašreizējā datuma atņem vienu dienu:





$datetime = jauns Datums Laiks ( ) ;

$intervāls = jauns Datuma intervāls ( 'P1D' ) ;

date_sub ( $datetime , $intervāls ) ;

atbalss $datetime -> formātā ( 'Y-m-d H:i:s' ) ;

?>

Kā redzat, jaunais datuma laiks ir vienu dienu agrāk nekā pašreizējais datums.





Ir iespējams arī atņemt stundas, minūtes un sekundes no DateTime objekta, izmantojot date_sub() funkciju. Lai atņemtu stundas, varat nodot datuma intervālu kā PT1H, kas nozīmē atņemt vienu stundu. Piemēram, apsveriet šādu kodu:





$datetime = jauns Datums Laiks ( “2023-05-16 14:43:00” ) ;

date_sub ( $datetime , jauns Datuma intervāls ( 'PT1H' ) ) ;

atbalss $datetime -> formātā ( 'Y-m-d H:i:s' ) ;

?>

Tas atņem vienu stundu no DateTime objekta un atjaunina objektu ar jauno vērtību. Jaunajai vērtībai var piekļūt, izmantojot formāts () objekta DateTime funkcija.

1. piemērs: dažādu intervālu atņemšana

The date_sub() funkcija ļauj atņemt dažādus intervālus, ne tikai dienas. Apskatīsim scenāriju, kurā mēs vēlamies atņemt 2 stundas un 30 minūtes no noteiktā datuma un laika.



$datums = jauns Datums Laiks ( '2023-11-02 10:32:45' ) ;

$intervāls = jauns Datuma intervāls ( 'PT1H15M' ) ;

date_sub ( $datums , $intervāls ) ;

atbalss $datums -> formātā ( 'Y-m-d H:i:s' ) ;

?>

Šajā piemērā mēs izveidojam DateTime objektu, kas attēlo datumu un laiku “2023-11-02 10:32:45” . Mēs arī izveidojam a Datuma intervāls objekts, kas attēlo 1 stundas un 15 minūšu periodu, izmantojot formātu “PT1H15M”. Pēc tam mēs izmantojam date_sub() funkcija, lai atņemtu intervālu no datuma un laika.

2. piemērs: Vairāku intervālu atņemšana

Varat arī izmantot date_sub() funkcija, lai no DateTime objekta atņemtu vairākus intervālus. Sintakse ir vienkārša: vienkārši izveidojiet jaunu DateInterval objektu katram intervālam, kuru vēlaties atņemt, un nododiet tos visus date_sub() darbojas kā masīvs.



$intervāls = masīvs (

jauns Datuma intervāls ( 'P1Y' ) ,

jauns Datuma intervāls ( 'P6M' ) ,

jauns Datuma intervāls ( 'P3D' )

) ;

$datetime = jauns Datums Laiks ( ) ;

katram ( $intervāls $intervāls ) {

date_sub ( $datetime , $intervāls ) ;

}

atbalss $datetime -> formātā ( 'Y-m-d H:i:s' ) ;

?>

Šajā piemērā mēs no datuma atņēmām vienu gadu, sešus mēnešus un trīs dienas.

3. piemērs: date_sub() ar laika joslām

Viena lieta, kas jums jāzina, lietojot date_sub() funkcija ir tāda, ka tā var ietekmēt jūsu laika joslu Datums Laiks objektu. Pēc noklusējuma, Datums Laiks objekti izmanto jūsu servera laika joslu. Tomēr, ja vēlaties strādāt ar citu laika joslu, varat to skaidri iestatīt, izmantojot setTimezone() metodi.



$datetime = jauns Datums Laiks ( 'tagad' , jauns DateTimeZone ( 'Amerika/Ņujorka' ) ) ;

$intervāls = jauns Datuma intervāls ( 'P1D' ) ;

date_sub ( $datetime , $intervāls ) ;

atbalss $datetime -> formātā ( 'Y-m-d H:i:s' ) ;

?>

Šajā piemērā mēs iestatījām laika joslu uz Amerika/Ņujorka un no datuma laika atņemam vienu dienu.

Atņemot intervālus, izmantojot date_sub() funkciju, ir svarīgi ņemt vērā, ka iegūtais datums tiek automātiski pielāgots, ja tas kļūst nederīgs.

Secinājums

The date_sub() PHP funkcija nodrošina ērtu veidu, kā atņemt intervālus no DateTime objektiem. Izmantojot šo funkciju, izstrādātāji var viegli veikt darbības, piemēram, dienu, stundu, minūšu vai sarežģītu intervālu atņemšanu no noteikta datuma un laika. The date_sub() funkcija piedāvā elastību un precizitāti datuma aprēķinu apstrādē, padarot to par vērtīgu rīku darbam ar datumiem un laikiem PHP lietojumprogrammās.