Тъй като вие говорите за планиране на бъдеще време, съхраняване само UTC не е непременно най-добрият подход.
Имайте предвид, че правилата за часовата зона могат (и се променят). Ако приложите актуализация на данните си за часовата зона (в PHP това се прави с timezonedb на PECL пакет), тогава всички данни, които вече сте преобразували в UTC, може да са невалидни.
По-доброто решение е да съхранявате множество стойности:
-
Оригиналната местна дата и час
-
Оригиналната часова зона (напр.
"America/New_York"
) -
Датата и часът по UTC, преобразувани от местните стойности
Когато искате да видите дали е време да изпълните задачата, трябва да сравните текущата дата и час по UTC със съхранената UTC стойност.
Когато прилагате актуализации на часовата зона, изхвърляте предишните преобразувани UTC стойности за всички бъдещи записи и преизчислявате нови въз основа на актуализираните данни.
Ако не направите това, губите намерението, което потребителят първоначално е предоставил. И ако не актуализирате данните си за часовата зона, системата ви няма да е наясно с различни промени, които се случват по света, като промените, направени в Египет по-рано тази година, или промените, идващи през октомври за Русия.
Последна точка - Ако е внедрена правилно, часовата зона на вашия сървър не трябва да има значение. Сравнете UTC с UTC.