Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czas w aktualnej strefie czasowej
Forum PHP.pl > Forum > Bazy danych > MySQL
Walian
Jak powinno się poprawnie zamieniać czas tak by u każdego był wyświetlany poprawnie?
W bazie mam w różnych tabelach pola typu DATETIME, zapisuję do nich datę używając NOW().
Chciałbym móc wyciągnąć tę datę najlepiej już przeliczoną na odpowiednią strefę czasową, albo - jeśli to nie jest dobry pomysł - przeliczyć ją w PHP i następnie wyświetlić.

Domyślam się, że musiałbym dać użytkownikom możliwość ustawienia strefy czasowej, w której się znajdują i domyślną (+1 godzina dla użytkowników z Polski) - gdy nie ustawią.

Na razie normalnie wyciągam datę z bazy i przeliczam ją za pomocą funkcji:
  1. function valid_time($format, $timestamp, $offset)
  2. {
  3. $offset = $offset * 3600;
  4. $timestamp += $offset;
  5. return gmdate($format, $timestamp);
  6. }
w taki sposób:
  1. valid_time('Y-m-d H:i:s', strtotime($row['pole_z_data']), 1)

Gdzie "1" to w tym wypadku +1 godzina.

Jeśli teraz dodam użytkownikom możliwość wybrania strefy czasowej i uwzględnię ten wybór w funkcji to będzie zawsze poprawnie wyliczało czas? A może zrobić to inaczej?

I jak myślicie - jak to robią inni webmasterzy na swoich stronach, np. w artykułach?
Jeśli się nie mylę to w phpbb zostało to zrobione tak jak pisałem na początku.

A może dałoby się to dostosować jeszcze lepiej - co do minuty?
Wiem, że JS jest w tym wypadku niezbędny...

Wiem, że jest pełno tematów o tym, ale ja chcę to zrobić porządnie i interesuje mnie jak się powinno to robić, a nie tylko jak można winksmiley.jpg
Pilsener
Ustawiasz domyślną strefę czasową:
http://pl2.php.net/manual/pl/function.date...imezone-set.php

I zmieniasz ją jeśli rozpoznasz, że user łączy się z innej lokalizacji na podstawie IP. Możesz też pozwolić userowi wybrać samemu strefę czasową - na podobnej zasadzie, co język.
Walian
No właśnie też myślałem już o tej geolokalizacji na podstawie IP, widziałem też klasę Scout choć jeszcze nie miałem czasu się jej przyjrzeć. W wolnym czasie spróbuję zrobić tak jak mówisz, jak będę miał jakieś problemy lub pytania to jeszcze będę pisał w tym temacie.
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.