Format daty i czasu zależny od ustawień przeglądarki użytkownika

Format daty i czasu zależny od ustawień przeglądarki użytkownika
poniatowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1666
0

Pracuje obecnie na CMSie. Zauwazylem, ze wszsytkie daty oraz czas jest formatowany ze wzgledu na ustawienia jezyka w przegladarce uzytkownika. Tak jak z jezykiem polskim nie ma wiekszego problemu. Tak pojawia sie problem np z angielskim. Poniewaz ten jezyk jest uzywany w kilku krajach oraz kilku roznych lokalizacjach np US, Canada czy Wielka Brytania. W USA uzywa sie format m/d/yy i 12 godzinny zegar. W Wielkiej Brytanii uzywa sie d/m/yy oraz 24 godzinny zegar.

W wiekszosci przegladarkach w krajach Europejskich sa zainstalowne dwa jezyki. EN US oraz EN. Pewnie zalezy to od producenta czy moze instalacji OS. Ja mam 4 lapki i na kazdym mam EN US oraz EN.

I tutaj jest moj problem. Poniewaz Jezeli EN US jest ustawiony jako jezyk glowny oraz format na date/time. To powoduje, ze strona wyswietla zly format np w krajach Europejskich.

Samo EN to tez tak naprawde EN US.

I zastanawiam sie czy mozna cos z tym zrobic. Generalnie uwazam, ze jezeli uzystkownik ma ustawiony EN US w przegladarce jako jezyk glowny to w sumie jego problem. Tylko gosc ode mnie z team mowi mi po raz kolejny, ze tak nie moze byc, ze mamy to poprawic. Nooo spoko, ale jak? Niby moge sprawdzic moze timezone albo locale z IP address? Ale skad mam wiedziec np kiedy uzyc jezyk z przegladarki a kiedy IP address? Ludzie tez uzywaja VPNow. Niby idzie to ogarnac, ale troche to jakis bezsensu jest dla mnie. Czy ktos tez zauwazyl ten problem? Czy jakos to poprawiliscie?

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
0

A to formatowanie NA PEWNO zachodzi w aplikacji server-side ?
Pytanie dałeś jako PHP

poniatowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1666
0
AnyKtokolwiek napisał(a):

A to formatowanie NA PEWNO zachodzi w aplikacji server-side ?
Pytanie dałeś jako PHP

Tak, PHP pobiera language oraz locale z tego co pamietam przez header $_SERVER['HTTP_ACCEPT_LANGUAGE']. I PHP manipuluje tymi danymi oraz ustawia language i locale na podstawie tych informacji, ktore sa wyslane z przegladarki uzytkownika.

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
2

Użytkownik powinien mieć w danych konta kraj/strefę czasową. Potem zapisujesz/wyświetlasz czas używając właściwej strefy.
Żadne IP, żaden język przeglądarki. Jak chciałbyś np. Rosję czy USA ograć? Jeden język a mnóstwo stref czasowych.

L7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 434
0

@poniatowski: Uważam, że się mylisz. PHP nie ustawia sobie formatu daty i czasu ze względu na to co ma użytkownik w przeglądarce. Problemem jest to w jakim formacie te dane są wysyłane z przeglądarki do skryptu i to wszystko i rozwiązanie jakie przedstawił @jurek1980 jest chyba najlepsze.

poniatowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1666
0

Podczas instalacji np Windowsa uzytkownik musi wybierac jezyk, strefe czasowa itd. Na podstawie tych ustawien jak user instaluje pierwszy raz przegladarke to te same wartosci zostana ustawione w przegladarce. Np powiedzmy, ze user wybrac language = EN i locale = US. To tak zostanie ustawione w przegladarce EN-US.

Wydaje sie, ze to ma super sense, zeby ustawic date/time format w profilu usera. Tylko takiego profilu u nas nie ma i raczej szybko nie bedzie. Niestety.

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
1
poniatowski napisał(a):

Generalnie uwazam, ze jezeli uzystkownik ma ustawiony EN US w przegladarce jako jezyk glowny to w sumie jego problem.

No i masz rację

Tylko gosc ode mnie z team mowi mi po raz kolejny, ze tak nie moze byc, ze mamy to poprawic.

Jak płacą to zrób im opcję w profilu która może nadpisać ten język, ewentualnie ustaw domyślny język na taki którego używa większość użytkowników. Jeśli to apka która jest używana wyłącznie w polsce to gość z teamu ma rację

L7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 434
0
poniatowski napisał(a):

Podczas instalacji np Windowsa uzytkownik musi wybierac jezyk, strefe czasowa itd. Na podstawie tych ustawien jak user instaluje pierwszy raz przegladarke to te same wartosci zostana ustawione w przegladarce. Np powiedzmy, ze user wybrac language = EN i locale = US. To tak zostanie ustawione w przegladarce EN-US.

Ale instalacja Windowsa nijak ma się do serwera PHP :)

Wydaje sie, ze to ma super sense, zeby ustawic date/time format w profilu usera. Tylko takiego profilu u nas nie ma i raczej szybko nie bedzie. Niestety.

No co najwyżej możesz sprawdzać w jakim formacie dostajesz datę i po stronie skryptu konwertować ją do "normalnego" formatu. Później podobnie z wyświetlaniem.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0

A nie wolałbyś żeby server manipulował timestampem, i niech klient wyświetli datę z odpowiednimi ustawieniami i strefą czasową?

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
0
Riddle napisał(a):

A nie wolałbyś żeby server manipulował timestampem, i niech klient wyświetli datę z odpowiednimi ustawieniami i strefą czasową?

a co za różnica skoro klient użyje tych samych ustawień przeglądarki i data będzie w tym samym formacie

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0
obscurity napisał(a):
Riddle napisał(a):

A nie wolałbyś żeby server manipulował timestampem, i niech klient wyświetli datę z odpowiednimi ustawieniami i strefą czasową?

a co za różnica skoro klient użyje tych samych ustawień przeglądarki i data będzie w tym samym formacie

No nie koniecznie, bo klient może mieć dane których nie wysyła do servera.

Poza tym, nawet jeśli to nic nie zmieni, to prościej się operuje samym timestampem.

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
1
poniatowski napisał(a):

Tylko gosc ode mnie z team mowi mi po raz kolejny, ze tak nie moze byc, ze mamy to poprawic.

A czy Ty porozmawiales z tym gościem i opisałeś mu problem tak jak tutaj?
Bo mam wrażenie, że dostałeś info że "masz to poprawić". Zgodzileś się na to, ale nadal nie wiadomo w czym dokładnie tkwi problem i jak chcecie z nim poradzić. Załóżmy że wybierzesz jedną z porad udzielonych Ci tutaj, zaimplementujesz to, a potem ten sam "gość" powie Ci - "... ale wiesz.. to nie o to mi chodziło"

Czy komunikowałeś problematykę temu gościowi?

KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 94
0

Hm, formatowanie daty, wybieranie strefy czasowej na podstawie języka przeglądarki czy geolokalizacji po IP..?
Jeśli profil Usera to za dużo to może chociaż prosty modal z dropdownem wyświetlany na pierwsze wejście na strone/logowanie lub dla osób, które nie mają tego ustawionego?

poniatowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1666
0

Tez coraz bardziej mysle w tym kierunku. zeby sobie user ustawil co tam chce sam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.