Ako používať funkciu date_offset_get() v PHP

Ako Pouzivat Funkciu Date Offset Get V Php



The date_offset_get() je funkcia triedy DateTime v PHP, ktorá sa používa na získanie posunu časového pásma v sekundách pre daný objekt DateTime. Umožňuje vývojárom získať rozdiel medzi časom v určenom časovom pásme a UTC (Coordinated Universal Time).

Syntax

Syntax súboru date_offset_get() funkcia je nasledovná:

int date_offset_get ( Dátum Čas $objekt )

Parameter funkcie je:







$object: Objekt DateTime, z ktorého sa má načítať posun časového pásma.



Návratová hodnota

The date_offset_get() funkcia vráti posun časového pásma v sekundách ako celé číslo.



Ako používať funkciu date_offset_get() v PHP

Tu je príklad, ako používať PHP date_offset_get() funkcia na získanie posunu UTC pre aktuálne časové pásmo:







$date = Nový Dátum Čas ( 'teraz' ) ;

$ offset = date_offset_get ( $date ) ;

ozvena 'Offset: ' . $ offset ;

?>

V tomto príklade vytvoríme nový objekt DateTime nastavený na aktuálny dátum a čas pomocou 'teraz' reťazec. Tento predmet potom odovzdáme do date_offset_get() funkcia, ktorá vráti posun UTC v sekundách. Nakoniec vytlačíme offset UTC pomocou príkazu echo.



Poznámka: Posun je nula, pretože pre tento prípad nie je nastavený čas.

Získanie kompenzácie pre konkrétny dátum a čas

PHP date_offset_get() metódu možno použiť aj na získanie offsetu UTC pre určitý dátum a čas. Ak to chcete urobiť, musíte vytvoriť objekt DateTime s požadovaným dátumom a časom a odovzdať ho funkcii. Tu je príklad:



$date = Nový Dátum Čas ( '2020-12-31 23:59:59' , Nový DateTimeZone ( 'Amerika/New_York' ) ) ;

$ offset = date_offset_get ( $date ) ;

ozvena 'Offset: ' . $ offset ;

?>

V tomto príklade vytvoríme nový objekt DateTime s dátumom a časom nastaveným na 31. december 2020 o 23:59:59 v časovom pásme Amerika/New_York. Tento predmet potom odovzdáme do date_offset_get() funkcia, ktorá vráti posun UTC v sekundách. Nakoniec vytlačíme offset UTC pomocou príkazu echo.

Poznámka: Vo vyššie uvedenom kóde je časové pásmo nastavené na Amerika/New_York čo je 5 hodín po UTC. Preto sa vracia -18 000 ako posun, ktorý je 5 hodín v sekundách.

Prevod dátumu a času na iné časové pásmo

Ďalší spôsob použitia PHP date_offset_get() funkcia je previesť objekt dátumu a času na iné časové pásmo. Ak to chcete urobiť, musíte vytvoriť nový DateTimeZone objekt s požadovaným časovým pásmom a nastavte ho ako vlastnosť vášho objektu DateTime pomocou setDate() a nastav čas() metódy. Tu je príklad:



$date = Nový Dátum Čas ( 'teraz' , Nový DateTimeZone ( 'Amerika/New_York' ) ) ;

$date -> setTimeZone ( Nový DateTimeZone ( 'Európa/Londýn' ) ) ;

$ offset = date_offset_get ( $date ) ;

ozvena 'Offset: ' . $ offset ;

?>

V tomto príklade sa aktuálny dátum a čas vytvorí ako nový objekt DateTime v časovom pásme America/New_York. Potom nastavíme časové pásmo na Európa/Londýn pomocou setTimeZone() metóda. Nakoniec vytlačíme dátum a čas pomocou formát() metóda, ktorá formátuje dátum a čas do reťazca na základe zadaného formátu.

Poznámka: Vo vyššie uvedenom kóde je časové pásmo nastavené na Amerika/New_York čo je 5 hodín po UTC. Potom nastavíme časové pásmo na Európa/Londýn čo je 1 hodinu pred UTC. Preto vráti 3600 ako posun, ktorý je 1 hodina v sekundách.

Záver

PHP date_offset_get() funkcia je užitočná funkcia pre vývojárov webu na extrahovanie posunu časového pásma od zadaného dátumu a času. V kombinácii s ďalšími funkciami dátumu a času ho možno použiť na výpočet časového rozdielu medzi dvoma časovými pásmami alebo podľa toho upraviť časovú pečiatku. Pochopenie toho, ako efektívne používať túto funkciu, môže výrazne zlepšiť funkčnosť a možnosti akejkoľvek webovej aplikácie.