Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Strefa czasowa
Forum PHP.pl > Forum > PHP
bmati666
Witam,
Czy jest możliwość sprawdzenia z jakiej strefy czasowej jest użytkownik?
Wazniak96
W tablicy $_SERVER masz informacje na temat kraju z którego jest otwierana strona. Dalej powinieneś wiedzieć co robić wink.gif
hind
Do tego w JavaScript można pobrać aktualną strefę czasow 
bmati666
A co jeśli to będzie USA? Tam jest kilka stref czasowych.
Wazniak96
Nom to w PHP z tego co wiem nie uzyskasz takich danych, ale możesz z Js tak jak napisał kolega wyżej.

Swoją drogą często w formularzach istnieje pole strefy czasowej. Czemu po prostu tak nie zrobisz?
bmati666
Pytałem bardziej z ciekawości, nie jest mi to aż tak bardzo potrzebne. Zastanawiałem się jak działają strony właśnie w USA jak dodają jakieś posty, żeby każdemu pokazała się godzina dodania w jego strefie. A czy mógłby ktoś podać przykład jak zrobić to w JS?
Wazniak96
klyyk!
by_ikar
Strefy czasowe i ich standaryzacja, to jest jakaś masakra, na szczęście są ludzie którzy się podejmują takich zadań i starają się obsłużyć każdy wyjątek. W JS korzystam z tego liba: http://pellepim.bitbucket.org/jstz/ który rozwiązuje wiele problemów.
bmati666
Dokładnie o coś takiego mi chodziło.
A konkretnie chodziło mi o to, żeby to co wyświetla wkleić do date_default_timezone_set('');
Jest taka możliwość?

Plik, który wyświetla strefę:
  1. <!DOCTYPE html>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <script type="text/javascript" src="../dist/jstz.js"></script>
  4. </head>
  5.  
  6. <div id="testArea"></div>
  7. <script type="text/javascript">
  8. var counter = 1;
  9. var interval = setInterval(function () {
  10. document.getElementById('testArea').innerHTML = counter + ": " + jstz.determine().name() + "<br/>";
  11. counter++;
  12. }, 2000);
  13.  
  14. </body>
  15.  
  16. </html>


Jak to "jstz.determine().name()" wkleić do date_default_timezone_set('');?
kajzur
To nie takie proste. Musisz to wysłać AJAXem do jakiegoś pliku PHP. A tam zrobić ini_set z wartością pobraną z JSa.
markonix
Przecież to tylko ustawi strefę dla skryptu, który uruchamia się tym AJAXem.
Jak już to tam bym to zapisał w ciasteczku lub sesji w zależności od potrzeb.
kajzur
Pytanie było jak wkleić wartość w date_default_timezone_set - więc na nie odpowiedziałem.
Pyton_000
Co z tego że pytanie było takie, skoro i tak nie będzie działało tak jak autor tego chce (a co chce można się dowiedzieć z postów)

Ja bym chyba zrobił tak, że na podstawie $_SERWER ustawił w Cookie TZ domyślne. Potem w JS sprawdził dokładniej. Jeśli się nie zgadza to wyświetlić monit użytkownikowi że wykrył inny TZ niż ten co już mamy. Jeśli tak się stanie niech to zaakceptuje i wtedy robisz POST i ustawiasz poprawne TZ w Cookie.

Dalej już problemu nie ma bo operujesz na TZ z cookie.

Jeśli się TZ zmieni (nie będzie identyczne z tym co jest w Cookie) to znowu monit że się zmieniła strefa.

To da Ci możliwość ustawienia raz (aż ktoś cookie nie wyczyści) i problem rozwiązany.
bmati666
Dzięki wszystkim za pomoc, trochę to pomieszane ale udało się. smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.