Da du taler om planlægning af fremtiden tid, kun lagres UTC er ikke nødvendigvis den bedste tilgang.
Husk, at tidszonereglerne kan (og gør) ændre sig. Hvis du anvender en opdatering til dine tidszonedata (i PHP sker det med PECLs timezonedb pakke), kan alle data, du allerede har konverteret til UTC, være ugyldige.
Den bedre løsning er at gemme flere værdier:
-
Den oprindelige lokale dato og tid
-
Den oprindelige tidszone (f.eks.
"America/New_York"
) -
UTC-datoen og -klokkeslættet, konverteret fra de lokale værdier
Når du vil se, om det er tid til at køre opgaven, skal du sammenligne den aktuelle UTC-dato og -klokkeslæt med den gemte UTC-værdi.
Når du anvender tidszoneopdateringer, smider du de tidligere konverterede UTC-værdier ud for alle fremtidige poster og genberegner nye baseret på de opdaterede data.
Hvis du ikke gør dette, mister du den hensigt, som brugeren oprindeligt angav. Og hvis du ikke holder dine tidszonedata opdateret, vil dit system ikke være opmærksom på forskellige ændringer, der sker rundt om i verden, såsom ændringerne foretaget i Egypten tidligere på året, eller ændringerne, der kommer i oktober for Rusland.
Sidste punkt - Hvis det implementeres korrekt, bør tidszonen på din server ikke betyde noget. Sammenlign UTC med UTC.