![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Głowie się od pewnego czasu nad obsługą stref czasowych. Ogólnie sprawa wygląda tak że zapisuję zawsze do bazy datę w formacie unixowym dla strefy GMT +0. Czyli ustawiam w php strefe czasu na na Europe/Dublin i to co zwraca time() wrzucam do bazy. Teraz tylko przy wyświetlaniu pobieram ten czas i dodaje do niego 3600 razy przesunięcie godzinowe strefy czasowej która wybrał użytkownik. Wszystko jest cacy... tylko że po zmianie czasu np. z zimowego na letni już nie będzie. Na dodatek w tej samej strefie czas zimowy i letni trwa różnie... tzn. u nas jest teraz zimowy a gdzieś daleko na południe (w tej samej strefie) mają letni (IMG:style_emoticons/default/nerdsmiley.png) Jak to wszystko poskładać żeby nikt nie osłupiał od złej daty? I czy ten manual php.net jest świetny czy jednak rzeczywiście nie ma tam informacji czy czas z time() jest zimowy czy letni? No właśnie jaki jest? Oczywiście nie chcę tak żeby użytkownik musiał stale pilnować jaki ma czas i zmieniać z zimowego na letni i odwrotnie. On ma tylko raz ustawić sobie strefę. Ten post edytował tomahawk 15.02.2011, 22:29:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Użyj klas DateTime i DateTimeZone (ewentualnie odpowiedników w postaci funkcji). Mają one wbudowaną obsługę czasu letniego. Przykładowo Polska(Warszawa) leży w tej samej strefie czasowej co Namibia(Windhuk) - http://pl.wikipedia.org/wiki/UTC%2B1:00 - oba te państwa używają czasu letniego, ale leżą na dwóch różnych półkulach, więc przechodzą na czas letni w innym momencie. Pomimo to DateTime sobie z tym radzi:
http://ideone.com/rF8iV Cytat I czy ten manual php.net jest świetny czy jednak rzeczywiście nie ma tam informacji czy czas z time() jest zimowy czy letni? No właśnie jaki jest? time() zwraca liczbę sekund które upłynęły od 1 stycznia 1970 00:00:00 GMT. Liczba sekund nie ma wersji letniej i zimowej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 12:18 |