Avatar billede prodic Mester
21. juni 2005 - 19:19 Der er 11 kommentarer og
1 løsning

Ur med tidszoner

Leder mere eller mindre desperat efter følgende:

Et ur man kan inddele/vise hvad klokken er i nogle predefinerede tidszoner. F.eks. skal den vise tiden i Helsinki, Göteborg, København, London og Florida(på sigt flere).
Dette skal den naturligvis gøre løbende, så den viser den reele tid. Dog behøver den ikke vise sekunder såfremt dette kan minimere et evt. tab af tid.

Og for at gøre det hele lidt sjovere, så må den gerne synkronisere med en central timeserver. Evt. kan den synkronisere hvert 5. minut og i den mellemliggende tid bare "sjusse" sig lidt frem.

Mig bekendt kan en ren javascript-løsning tabe "tiden" desto hårdere belastet en klient, hvorpå løsningen skal anvendes, som tiden går. Dette ønsker jeg at minimere til et minimum - gerne via 5. min-chekket som nævnt ovenover.

Java-applets og lign. frabedes.

Nogle konstruktive ideer?
Avatar billede claus_joergensen Nybegynder
21. juni 2005 - 19:26 #1
Sjot, jeg har faktisk et på www.kalonline.dk
Det viser tiden i Danmark, og Korea.

Selve scriptet er her: http://www.kalonline.dk/includes/clock.js
Avatar billede claus_joergensen Nybegynder
21. juni 2005 - 19:27 #2
time.getUTCHours() giver tiden ved greenwitch, og så er det at lægge til :)

Et javascript ud vil altid være baseret på brugeren eget ur i f.eks. windows,
og det er der ikke noget at gøre ved, men tiden vil altid passe i forhold set fra brugerens eget ur.
Avatar billede prodic Mester
21. juni 2005 - 19:40 #3
Det lyder jo super - har du nogle erfaringer med om den taber tid, når den har kørt i f.eks. 24-48 timer, og klienten er blevet anvendt til lidt mere krævende opgaver?
Har nemlig læst mig frem til, at det kan betyde et tids-tab.

Kiggede lidt på følgende : http://eksperten.dk/spm/106187 (atom-uret)
og forestillede mig at det kunne kombineres med en "alm. tæller" på en eller anden snedig vis. :-)
Avatar billede claus_joergensen Nybegynder
21. juni 2005 - 19:44 #4
Har kun brugt den til alm. hjemmesidebrug, så ikke i så lang tid.

Men ville undre mig over at javascript skulle gøre det.
Avatar billede roenving Novice
22. juni 2005 - 02:38 #5
Brug af javascripts setTimeout- og setInterval-metoder er selvfølgelig potentielt ikke tidsægte, ligesom de metoder enten skal tage udgangspunkt i klientens egen tidsformattering eller en angivet værdi, udsendt fra serveren, som måske ikke er helt præcis ...

-- men da clock-timeren er helt grundlæggende for computerens funktion, tror jeg ikke du kan nå at få væsentlige udsving, selv over mange døgn, hvis du netop selv medsender en start-tid og hele tiden korrellerer med forskellen mellem den og den lokale tid !-)

Uden korrellation, har jeg tidligere lavet denne:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Multiple times</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
var todayColor = "#000";
var tomorrowColor = "#00f";
var yesterdayColor = "#f00";
function showTime(){
  var lt = new Date();
  var l = document.getElementById('local');
  l.innerHTML = lt.toLocaleTimeString();
  l.style.color = todayColor;

  var bt = new Date(lt.getUTCFullYear(),lt.getUTCMonth(),lt.getUTCDate(),lt.getUTCHours()+10,lt.getUTCMinutes(),lt.getUTCSeconds(),lt.getUTCMilliseconds());
  var b = document.getElementById('beijing')
  b.innerHTML = bt.toLocaleTimeString();
  b.style.color = (bt.getDate()==lt.getDate())?todayColor:(bt.getDate()>lt.getDate())?tomorrowColor:yesterdayColor;

  var ct = new Date(lt.getUTCFullYear(),lt.getUTCMonth(),lt.getUTCDate(),lt.getUTCHours()+1,lt.getUTCMinutes(),lt.getUTCSeconds(),lt.getUTCMilliseconds());
  var c = document.getElementById('chagen')
  c.innerHTML = ct.toLocaleTimeString();
  c.style.color = (ct.getDate()==lt.getDate())?todayColor:(ct.getDate()>lt.getDate())?tomorrowColor:yesterdayColor;

  var mt = new Date(lt.getUTCFullYear(),lt.getUTCMonth(),lt.getUTCDate(),lt.getUTCHours()+3,lt.getUTCMinutes(),lt.getUTCSeconds(),lt.getUTCMilliseconds());
  var m = document.getElementById('moscow')
  m.innerHTML = mt.toLocaleTimeString();
  m.style.color = (mt.getDate()==lt.getDate())?todayColor:(mt.getDate()>lt.getDate())?tomorrowColor:yesterdayColor;

  var nt = new Date(lt.getUTCFullYear(),lt.getUTCMonth(),lt.getUTCDate(),lt.getUTCHours()-4,lt.getUTCMinutes(),lt.getUTCSeconds(),lt.getUTCMilliseconds());
  var n = document.getElementById('newyork')
  n.innerHTML = nt.toLocaleTimeString();
  n.style.color = (nt.getDate()==lt.getDate())?todayColor:(nt.getDate()>lt.getDate())?tomorrowColor:yesterdayColor;
}
</script>
</head>
<body onresize onload="showTime();setInterval('showTime()',1000)">
Time in different sites around the world (blue is tomorrows date, red yesterdays):<br>
Your time: <span id="local"></span><br>
&nbsp;&nbsp;&nbsp;Time in Beijing: <span id="beijing"></span>&nbsp;(standard time -- no daylight savings)<br>
&nbsp;&nbsp;&nbsp;Time in Moscow: <span id="moscow"></span>&nbsp;(standard time -- no daylight savings)<br>
&nbsp;&nbsp;&nbsp;Time in Copenhagen: <span id="chagen"></span>&nbsp;(standard time -- no daylight savings)<br>
&nbsp;&nbsp;&nbsp;Time in New York: <span id="newyork"></span>&nbsp;(standard time -- no daylight savings)
</body>
</html>
Avatar billede prodic Mester
22. juni 2005 - 18:32 #6
roenving->
Kan det lade sig gøre, at den tager højde for daylight savings?
Pt. viser den lokal tid som værende 18.29, men tiden i Copenhagen som værende 17.29. Altså en forskel på 1 time. Og mig bekendt, så er jeg i samme tidszone som Copenhagen. :-)

Den viser altså LocaleTime som værende korrekt, men "regner" forkert ved UTC+1 - og magelig som jeg er, så ville jeg jo gerne undgå at ændre halv-årligt.

Tricket med tomorrow/yesterday er ret smart. Fittig lille feature.
Avatar billede roenving Novice
23. juni 2005 - 12:13 #7
Jeg kender ikke, og kan ikke finde nogen dokumentation, som uden større omveje kan hente info om sommertid ...

Jeg fandt dog disse links, som også mere eller mindre viser problemet med at afgøre det !-)

http://www.irt.org/script/281.htm

http://www.shotover.clara.net/datetest.htm

http://www.maxxblade.co.uk/clock/
Avatar billede prodic Mester
09. juli 2005 - 13:34 #8
Efter lidt downtime må det være på tide, at få dette spørgsmål afsluttet.

Løsningen bliver, at jeg låner lidt hist og pist, så hvis I begge vil smide et svar, så skal jeg fordele pointene ligeligt imellem Jer.

PFT
Avatar billede roenving Novice
09. juli 2005 - 15:07 #9
Oki '-)
Avatar billede prodic Mester
17. juli 2005 - 21:39 #10
Hvis Claus er vågen endnu, og vil smide et svar, så bliver der delt point ud... hvis ikke, så deler jeg rundhåndet ud til den gode roenving.
Avatar billede prodic Mester
30. juli 2005 - 10:35 #11
Vi lukker og slukker...
Avatar billede roenving Novice
30. juli 2005 - 11:45 #12
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester