Osnovna sintaksa
Sintaksa za korištenje datum_pod() funkcija je data u nastavku:
datum_pod ( Datum vrijeme $objekt , DatumInterval $interval )Ovdje, $objekt je Datum vrijeme objekt od kojeg želite oduzeti interval, i $interval je DatumInterval objekt koji specificira interval koji želite oduzeti. Imajte na umu da su oba argumenta potrebna za korištenje datum_pod() ispravno funkcionirati.
Rad s DateIntervalom
Za korištenje datum_pod() funkciju, morate stvoriti a DatumInterval objekt koji specificira količinu vremena koju želite oduzeti od vašeg originalnog datuma-vremena. DatumInterval objekti se mogu kreirati pomoću DatumInterval konstruktor. Konstruktor uzima parametar niza koji specificira interval u formatu kao što je P1D (jedan dan), P1M (jedan mjesec), P1Y (jedna godina) i P1DT1H (jedan dan i jedan sat).
Primjeri
// Oduzmi jedan dan$interval = novi DatumInterval ( 'P1D' ) ; // Oduzmi jedan mjesec
$interval = novi DatumInterval ( 'P1M' ) ;
// Oduzmi jednu godinu
$interval = novi DatumInterval ( 'P1Y' ) ;
Kako koristiti PHP funkciju date_sub().
Nakon što imate a DatumInterval objekt, možete ga kombinirati s a Datum vrijeme objekt za izračunavanje novog datuma i vremena. Evo primjera koji oduzima jedan dan od trenutnog datuma:
$datumvrijeme = novi Datum vrijeme ( ) ;
$interval = novi DatumInterval ( 'P1D' ) ;
datum_pod ( $datumvrijeme , $interval ) ;
jeka $datumvrijeme -> format ( 'Y-m-d H:i:s' ) ;
?>
Kao što vidite, novi datum i vrijeme je jedan dan ranije od trenutnog datuma.
Također je moguće oduzeti sate, minute i sekunde od objekta DateTime pomoću datum_pod() funkcija. Za oduzimanje sati možete proslijediti datumski interval kao PT1H, što znači oduzimanje jednog sata. Na primjer, razmotrite sljedeći kôd:
$datumvrijeme = novi Datum vrijeme ( '2023-05-16 14:43:00' ) ;
datum_pod ( $datumvrijeme , novi DatumInterval ( 'PT1H' ) ) ;
jeka $datumvrijeme -> format ( 'Y-m-d H:i:s' ) ;
?>
Ovo oduzima jedan sat od objekta DateTime i ažurira objekt novom vrijednošću. Novoj vrijednosti možete pristupiti pomoću format() funkcija objekta DateTime.
Primjer 1: Oduzimanje različitih intervala
The datum_pod() funkcija omogućuje oduzimanje različitih intervala, a ne samo dana. Razmotrimo scenarij u kojem želimo oduzeti 2 sata i 30 minuta od zadanog datuma i vremena.
$datum = novi Datum vrijeme ( '2023-11-02 10:32:45' ) ;
$interval = novi DatumInterval ( 'PT1H15M' ) ;
datum_pod ( $datum , $interval ) ;
jeka $datum -> format ( 'Y-m-d H:i:s' ) ;
?>
U ovom primjeru stvaramo objekt DateTime koji predstavlja datum i vrijeme “2023-11-02 10:32:45” . Također stvaramo a DatumInterval objekt koji predstavlja razdoblje od 1 sat i 15 minuta u formatu 'PT1H15M'. Zatim koristimo datum_pod() funkciju za oduzimanje intervala od datuma i vremena.
Primjer 2: Oduzimanje više intervala
Također možete koristiti datum_pod() funkcija za oduzimanje više intervala od objekta DateTime. Sintaksa je jednostavna: samo stvorite novi objekt DateInterval za svaki interval koji želite oduzeti i proslijedite ih sve datum_pod() funkcioniraju kao niz.
$intervali = niz (
novi DatumInterval ( 'P1Y' ) ,
novi DatumInterval ( 'P6M' ) ,
novi DatumInterval ( 'P3D' )
) ;
$datumvrijeme = novi Datum vrijeme ( ) ;
za svakoga ( $intervali kao $interval ) {
datum_pod ( $datumvrijeme , $interval ) ;
}
jeka $datumvrijeme -> format ( 'Y-m-d H:i:s' ) ;
?>
U ovom smo primjeru od datuma oduzeli jednu godinu, šest mjeseci i tri dana.
Primjer 3: date_sub() s vremenskim zonama
Jedne stvari morate biti svjesni kada koristite datum_pod() funkcija je da može utjecati na vašu vremensku zonu Datum vrijeme objekt. Prema zadanim postavkama Datum vrijeme objekti koriste vremensku zonu vašeg poslužitelja. Međutim, ako želite raditi s drugom vremenskom zonom, možete je eksplicitno postaviti pomoću setTimezone() metoda.
$datumvrijeme = novi Datum vrijeme ( 'sada' , novi DatumVremeZona ( 'Amerika/New_York' ) ) ;
$interval = novi DatumInterval ( 'P1D' ) ;
datum_pod ( $datumvrijeme , $interval ) ;
jeka $datumvrijeme -> format ( 'Y-m-d H:i:s' ) ;
?>
U ovom smo primjeru postavili vremensku zonu na America/New_York i oduzeli jedan dan od datuma i vremena.
Prilikom oduzimanja intervala pomoću datum_pod() važno je napomenuti da se rezultirajući datum automatski prilagođava ako postane nevažeći.
Zaključak
The datum_pod() funkcija u PHP-u pruža prikladan način za oduzimanje intervala od DateTime objekata. Korištenjem ove funkcije, programeri mogu jednostavno izvoditi operacije kao što su oduzimanje dana, sati, minuta ili složenih intervala od zadanog datuma i vremena. The datum_pod() funkcija nudi fleksibilnost i točnost u rukovanju izračunima datuma, što je čini vrijednim alatom za rad s datumima i vremenima u PHP aplikacijama.