Wpis z mikrobloga

Mam problem z timezone dla każdego użytkownika z innego kraju, wyliczenia na bazie robię na podstawie created_at ale dla każdego użytkownika może czas się różnić i dawać całkowanie inne wyniki, jak to rozwiązać najlepiej ?
#laravel #php
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Radaka: a jak użytkownikom ustalasz strefę czasową? Chyba najlepiej byłoby aby pole **created_at** było jako timestamp w bazie danych. Wtedy strefę czasową zapodajesz z perspektywy danego użytkownika. Link
  • Odpowiedz
@ajgoron: w tej chwili myślę zeby przy logowani sprawdzać jaką mają aktualna strefę czasową i zapisywać w bazie danych i następnie ustawiać globalnie całemu carbonowi
  • Odpowiedz
@Radaka @LuckyLuke_2776 jeżeli OP korzysta z carbona to wystarczy zrobić tak jak napisał. No w bd można trzymać albo jako datetime tworzony z UTC albo timestamp, który zawsze jest tworzony z UTC (trzeba to mieć na uwadze przy wstawianiu danych do bd).
  • Odpowiedz
@ajgoron: a w larwie nie jest tak, że i tak podstawowe funkcjonalnosci zapisują w bazie jednolity czas GMT, a dopiero warstwa aplikacji oblicza rzeczywisty czas dla konkretnego timezone?
  • Odpowiedz
@MrDracek: zapisuje wszystko w UTC diffForHumans() zwraca mi poprawny czas z uwzglednieniem timezonu ale nie jestem w żaden sposób przeformatować tego z uwzglednieniem timezonu, ale jest możliwość tylko nie wie jak
  • Odpowiedz