15. juni 2004 - 15:46Der er
10 kommentarer og 1 løsning
Hvordan får man timezone af en client
Jeg har et website. I det website har jeg nogle tider (ligger i en excel database) som gerne skal vises i den lokale tid som IE klienten befinder sig i. Indtil videre gemmer jeg alle tidspunkter i GMT/UMT da dette er det nemmeste at regner ud fra. DVS at databasen har kl 12:00 gemt, men på websiden skal der faktisk vises 13:00 fordi vi befinder os i GMT+1. Hvis de loggede sig på fra New York skulle der vises 08:00. Nogle der har nogen ideer?
Ufff.Jeg kan se mig selv rode mig ind i noget grimt stads her. Nu skal jeg lige pludselig til at runde værdier af og den slags også. Jeg syntes ofta man ser at klient tiden ikke går rigtigt, men er bagud med 5-10 min. Det var derfor jeg blandt andet gerne ville have fat i selve tidszonen.
Jeg har da også vist hvordan du får GMT. klientTime = hour(datoTid) aktuelTime = hour(now) GMT = klientTime - aktuelTime - 1
Men det tager selvfølgelig ikke højde for om klientens ur går lidt forkert. Du kunne evt udbygge det lidt, hvis du tager klientbrowserens lande ID, og så sammenholde tiden med det. Dette vil dog ikke holde i de tilfælde hvor browseren er engelsk, og du skal til at lave en DB med alle lande, landeID'er og deres tidszoner... Det bliver et stort projekt.
Jeg tror ikke der er flere måder at gøre det på, men det betyder jo ikke at der ikke er :-) Håber du kan bruge dette
Men på den anden side, så er det da ligegyldigt om klientens ur går forkert, hvis bare du selv er sikker på, at serverens tid går rigtigt, for du kan da bare justere tiden så, da minutter skal være ens på alle ure over hele verden...
puha. Det er vist et større projekt end jeg lige havde regnet med. Der er vist ikke nogen nem løsning til det her. Jeg kigger lidt i den stil du har foreslået. Tak
og her med mere præcist tidsinterval If (cInt(klientMinut) < 60 AND cInt(klientMinut) > 40) AND (cInt(aktuelMinut) > 0 AND cInt(aktuelMinut) < 20) Then klientTime = klientTime + 1 ElseIf (cInt(aktuelMinut) < 60 AND cInt(aktuelMinut) > 40) AND (cInt(klientMinut) > 0 AND cInt(klientMinut) < 20) Then klientTime = klientTime - 1 End If
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.