Symfony, Doctrine – Zarządzanie wieloma strefami czasowymi

Domyślnie, w przypadku użycia pola encji DateTimeType, data jest zapisywana w domyślnej strefie czasowej skonfigurowanej w konfiguracji php. Czasami jednak musimy pokazywać i zarządzać datami z bazy danych w różnych strefach czasowych.

Używając kodu umieszczonego poniżej, data w bazie danych zostanie zapisana w UTC +00:00, a podczas każdego wstawiania/aktualizowania danych, daty zostaną przeliczone na tę strefę czasową. Za każdym razem, kiedy załadujesz dane z bazy danych, daty zostaną przeliczone na zdefiniowaną przez danego użytkownika strefę czasową.

Jak to zrobić:

  1. Utwórz nowe pole w encji użytkownik do zapisu strefy czasowej
  2.  Wygeneruj metody do pobierania i ustawiania strefy czasowej używając linii poleceń
  3.  Zaktualizuj strukturę bazy danych używając linii poleceń
  4. Utwórz nowy typ pola encji
  5. Utwórz nowy „nasłuchiwacz” 😀 zdarzeń
  6. Zarejestruj nowy „nasłuchiwacz” 😀 zdarzeń
  7. (opcjonalnie) Umieść informację o używanej strefie czasowej gdzieś w swoim szablonie Twig
  8. Zdefiniuj domyślną strefę czasową
  9. Pamiętaj by umożliwić użytkownikowi wybór strefy czasowej w rejestracji i edycji profilu
  10. Wszystko gotowe 🙂

W razie problemów lub jeśli znasz lepsze rozwiązanie –
zostaw proszę komentarz poniżej.
Dzięki! 😉

I ask you to review this article

There are currently no entry reviews

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

13 − ten =