Sintaxă
Sintaxa lui date_offset_get() functia este urmatoarea:
int date_offset_get ( DateTime $obiect )Parametrul funcției este:
$obiect: Obiectul DateTime de la care se poate prelua offset-ul fusului orar.
Valoare returnată
The date_offset_get() funcția returnează offset-ul fusului orar în secunde ca număr întreg.
Cum se utilizează funcția date_offset_get() în PHP
Iată un exemplu de utilizare a PHP date_offset_get() funcția pentru a prelua offset-ul UTC pentru fusul orar curent:
$date = nou DateTime ( 'acum' ) ;
$offset = date_offset_get ( $date ) ;
ecou 'Decalaj: ' . $offset ;
?>
În acest exemplu, creăm un nou obiect DateTime setat la data și ora curente folosind 'acum' şir. Apoi trecem acest obiect către date_offset_get() funcția, care returnează offset-ul UTC în secunde. În cele din urmă, imprimăm offset-ul UTC folosind instrucțiunea echo.
Notă: Decalajul este zero deoarece ora nu este setată pentru acest caz.
Obținerea compensației pentru o anumită dată și oră
PHP date_offset_get() metoda poate fi folosită și pentru a obține decalajul UTC pentru o anumită dată și oră. Pentru a face acest lucru, trebuie să creați un obiect DateTime cu data și ora dorite și să îl transmiteți funcției. Iată un exemplu:
$date = nou DateTime ( '2020-12-31 23:59:59' , nou DateTimeZone ( „America/New_York” ) ) ;
$offset = date_offset_get ( $date ) ;
ecou 'Decalaj: ' . $offset ;
?>
În acest exemplu, creăm un nou obiect DateTime cu data și ora setate la 31 decembrie 2020, la 23:59:59 în fusul orar America/New_York. Apoi trecem acest obiect către date_offset_get() funcția, care returnează offset-ul UTC în secunde. În cele din urmă, imprimăm offset-ul UTC folosind instrucțiunea echo.
Notă: În codul de mai sus, fusul orar este setat la America/New_York care este cu 5 ore în urma UTC. Prin urmare, se întoarce -18000 ca offset care este de 5 ore în secunde.
Conversia datei și orei într-un fus orar diferit
Un alt mod de a folosi PHP date_offset_get() funcția este de a converti un obiect de dată și oră într-un alt fus orar. Pentru a face acest lucru, trebuie să creați un nou DateTimeZone obiect cu fusul orar dorit și setați-l ca proprietate a obiectului dvs. DateTime folosind Seteaza data() și potriveste ora() metode. Iată un exemplu:
$date = nou DateTime ( 'acum' , nou DateTimeZone ( „America/New_York” ) ) ;
$date -> setTimeZone ( nou DateTimeZone ( „Europa/Londra” ) ) ;
$offset = date_offset_get ( $date ) ;
ecou 'Decalaj: ' . $offset ;
?>
În acest exemplu, data și ora curente sunt create ca un nou obiect DateTime în fusul orar America/New_York. Apoi setăm fusul orar la Europe/London folosind setTimeZone() metodă. În cele din urmă, imprimăm data și ora folosind format() metoda, care formatează data și ora într-un șir pe baza formatului specificat.
Notă: În codul de mai sus, fusul orar este setat la America/New_York care este cu 5 ore în urma UTC. Apoi setăm fusul orar la Europa/Londra care este cu 1 oră înainte de UTC. Prin urmare, returnează 3600 ca offset, care este de 1 oră în secunde.
Concluzie
PHP date_offset_get() funcția este o funcție utilă pentru dezvoltatorii web pentru a extrage decalajul fusului orar al unei date și ore specificate. În combinație cu alte funcții de dată și oră, poate fi utilizat pentru a calcula diferența de timp dintre două fusuri orare sau pentru a ajusta marca temporală în consecință. Înțelegerea modului de utilizare eficientă a acestei funcții poate îmbunătăți semnificativ funcționalitatea și capacitățile oricărei aplicații bazate pe web.