Avatar billede palle1976 Nybegynder
11. maj 2005 - 17:09 Der er 4 kommentarer og
1 løsning

Ur der viser forkert tidspunkt når siden loades

Jeg har en WEB-side som kan vise klokken for nogle forskellige byer. Brugeren vælger den ønskede by i en dropdown-boks. Koden ser ud som følgende:

Javascript der beregner tiden:

function timer(v){
GMT = v;
var gmt = new Date();
var now = new Date();
var set = now.getTimezoneOffset();
gmt.setTime(now.getTime()+(set/60+parseFloat(GMT))*60*60*1000);
hor = gmt.getHours();    if(hor < 10)hor = "0" + hor;
min = gmt.getMinutes();    if(min < 10)min = "0" + min;
sec = gmt.getSeconds();    if(sec < 10)sec = "0" + sec;
document.W_clock.W_text.value = " "+hor+" : "+min+" : "+sec;
hor = now.getHours();    if(hor < 10)hor = "0" + hor;
min = now.getMinutes();    if(min < 10)min = "0" + min;
sec = now.getSeconds();    if(sec < 10)sec = "0" + sec;
document.W_clock.W_text2.value = " "+hor+" : "+min+" : "+sec;
setTimeout("timer(GMT)",999);
}

Her er dropdownboksen hvor der vælges by:

<table border="0" cellpadding="0" cellspacing="0" width="200" height="37"class="Clock">
<tr><td width="30" align="right"></td><td align="right"> Your time is: <input type="text" name="W_text2" class="ClockInput"></td></tr>
<tr><td></td><td align="right">
<select name="city"
onChange="timer(W_clock.city.options[W_clock.city.selectedIndex].value)" class="ClockSelect">
<option value=10>Melbourne
<option value=9>Tokyo
<option value=8>Singapore

<option value=2>Copenhagen
<option value=2>Rotterdam
<option value=1>London
<option value=-3>Rio de Janeiro
<option value=-3>Sao Paulo
<option selected value=-4>Nassau
<option value=-4>Stamford
<option value=-5>Houston
<option value=-5>Barranquilla
</select>&nbsp is: <input type="text" name="W_text" class="ClockInput"></td></tr>

Mit problem er at første gang siden loades vises tiden for Nassau, men en time bag ud (hvis klokken i Nassau er 10.00 vises 9.00). Hvis jeg vælger en af de andre byer og går tilbage til Nassau, så passer tiden.... Er der nogen der kan finde fejlen ??
Avatar billede busschou Praktikant
11. maj 2005 - 17:25 #1
Du mangler i al fald en parantes i denne
<select name="city" onChange="timer(W_clock.city.options[W_clock.city.selectedIndex].value)" class="ClockSelect">
Avatar billede skovenborg Nybegynder
11. maj 2005 - 17:55 #2
hvordan kalder du funktionen i starten? Hvis jeg fx skriver:
<body onload="timer(document.W_clock.city.value);">
så viser den skam rigtignok. Har dog ændret lidt på din select-boks så der står:
<select name="city"
onChange="timer(this.value)" class="ClockSelect">
Avatar billede palle1976 Nybegynder
12. maj 2005 - 10:16 #3
Jeg har fundet en løsning på problemet. Fejlen lå i mit start kald til timer(...), her var der indtastet en fast værdi som ikke var den rigtige.
Avatar billede busschou Praktikant
12. maj 2005 - 11:27 #4
oki..så bare selv luk spørgsmålet igen :o)
Avatar billede palle1976 Nybegynder
13. maj 2005 - 11:39 #5
OK
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