-
Læs om understøttelse af tidszone i MySQL , og sørg for, at din mysql-database er konfigureret med aktuelle tidszonetabeller. Opdater regelmæssigt.
-
Knyt hver lokation til en navngivet IANA/Olson-tidszone, såsom
"America/Los_Angeles"
, eller"Europa/London"
. Se listen her . Hvis du har lat/lon, kan du slå tidszonen op via en af disse metoder . -
Brug MySQL CONVERT_TZ funktion til at konvertere den aktuelle UTC-tid til den specifikke zone. For eksempel
CONVERT_TZ(UTC_TIMESTAMP(),'UTC','Asien/Tokyo')
-
Brug ugedagen og tidspunktet for den konverterede tid til at tjekke dagen og rækkevidden i stedets indtastning.
Bemærk også, at andre måske foreslår, at man kun gemmer UTC i databasen eller konverterer alle værdierne til UTC, før man sammenligner med "nu"-værdien. Hver af disse tilgange kan mislykkes i edge-tilfælde, da UTC-ugedagen ikke nødvendigvis er den samme ugedag som i hver tidszone.
En anden tilgang, som vil arbejde, men det kræver mere indsats, er at forudbestemme de specifikke UTC-start- og stoptider i et stykke tid i fremtiden (i det mindste til den næste, men måske længere). Så kan du scanne denne liste med UTC-tiden. Dette fungerer bedre i skala, når du har tusindvis eller flere individuelle poster at kontrollere. Men i mindre skalaer er det normalt ikke omkostningerne værd.
Ligeledes kunne du have en baggrundsproces, der bare sætter et "nu åben"-flag på hver post, men det skulle konstant arbejde mod din database, og du kunne aldrig tjekke efter andre tidspunkter end "nu".