Myślę, że jesteś na dobrej drodze dzięki GMT (UTC). Użyj UTC jako kanonicznej reprezentacji sygnatury czasowej, gdy masz jakieś zdarzenie, które ma miejsce (lub wystąpiło) w określonym punkt-w-czasie. UTC nie ma wpływu na reguły DST, więc służy jako świetna, jednoznaczna reprezentacja punkt-w-czasie.
Po uzyskaniu strategii jednoznacznego przedstawiania daty/czasu zdarzenia, można dość łatwo rozwiązać problem polegający na ustaleniu daty/czasu 10 w oparciu o strefę czasową najbardziej odpowiednią do zaakceptowania przez użytkowników (lub wyświetlaj im). Prawdopodobnie musisz znać i zapisać strefę czasową wydarzenia, ale ponieważ przechowujesz aktualną datę/czas wydarzenia w UTC, możesz dość łatwo zlokalizować go do strefy czasowej użytkownika, jeśli jest to bardziej istotne. do nich w każdym przypadku użycia.
Ta lokalizacja jest zwykle wykonywana z biblioteką strefy czasowej dostarczoną przez zestaw SDK (np. Java ma java.util.Calendar) lub jako rozszerzenie innej firmy (np. Python ma pytz). Jestem pewien, że PHP ma odpowiednik, ale nie jestem tak zaznajomiony z jego bibliotekami.
Te biblioteki są zazwyczaj tworzone na podstawie bazy danych reguł, takiej jak Olson Zoneinfo DB. Reguły te mogą się dość często zmieniać, więc musisz być na bieżąco z aktualizacjami podstawowej bazy danych, szczególnie jeśli tworzysz prawdziwie globalną aplikację. Jednak wykonują one dobrą robotę polegającą na eksternalizacji ezoterycznych, mglistych reguł strefy czasowej, dzięki czemu możesz (teoretycznie) zaktualizować bazę danych reguł bez konieczności przeprowadzania znaczącej aktualizacji środowiska wykonawczego lub wprowadzania istotnych zmian kodu, gdy reguły DST w szczególna zmiana obszaru.
To nie jest najłatwiejszy problem na świecie i śmierdzi, że musimy to zrobić, ale gdy zrobimy to już kilka razy i pogadamy o rozbieżnościach między przechowywaniem dokładnej reprezentacji punkt-w-czasie a obawą lokalizacji, staje się ona drugą naturą.
Czy musisz uruchomić go o określonej godzinie lub w dowolnym czasie, o ile jest on uruchamiany regularnie w pewnym przedziale? – dusoft
czyli dzień tygodnia (nie dzień, miesiąc i rok), strefa czasowa (ppl w różnych strefach czasowych porównujących harmonogram?) I dst? to jest przechowywane w mysql? – OIS