Protože mluvíte o plánování budoucnosti čas, pouze UTC není nutně nejlepší přístup.
Mějte na paměti, že pravidla časových pásem se mohou (a mění) měnit. Pokud použijete aktualizaci údajů o časovém pásmu (v PHP se to provádí pomocí PECL timezonedb balíček), pak mohou být všechna data, která jste již převedli na UTC, neplatná.
Lepším řešením je uložit více hodnot:
-
Původní místní datum a čas
-
Původní časové pásmo (např.
"America/New_York"
) -
Datum a čas UTC převedené z místních hodnot
Když chcete zjistit, zda je čas spustit úlohu, porovnali byste aktuální datum a čas UTC s uloženou hodnotou UTC.
Když použijete aktualizace časového pásma, vyhodíte předchozí převedené hodnoty UTC pro všechny budoucí položky a přepočítáte nové na základě aktualizovaných dat.
Pokud to neuděláte, ztrácíte záměr, který uživatel původně poskytl. A pokud nebudete aktualizovat údaje o svém časovém pásmu, pak váš systém nebude vědět o různých změnách, které se dějí po celém světě, jako jsou změny provedené v Egyptě na začátku tohoto roku nebo změny přicházející v říjnu pro Rusko.
Poslední bod – Při správné implementaci by na časovém pásmu vašeho serveru nemělo záležet. Porovnejte UTC s UTC.