Avatar billede webhest Nybegynder
22. maj 2003 - 22:59 Der er 7 kommentarer og
1 løsning

En klok der tæller

Er der nogle der kan give mig scriptet til en Klok der kører efter sin egen tid, og IKKE windows uret?
Avatar billede mortrr Praktikant
22. maj 2003 - 23:24 #1
"Egen tid"?

Skal det køre som et normalt ur, men bare med fx et antal timers forskel?

Så er det nemmeste bare at lægge tid til (eller trække fra) den nuværende lige før man viser den.

<html>
<script>
function AddNul(inp) {
    inp=""+inp;
    if (inp.length<2) inp="0"+inp;
    return inp;
}

function showTime() {
  curTime=new Date();
  curTime.setMinutes(curTime.getMinutes()+50);

  cSeconds=AddNul(curTime.getSeconds());
  cMinutes=AddNul(curTime.getMinutes());
  cHours  =AddNul(curTime.getHours());

  document.all("tLocal").value=""+cHours+":"+cMinutes+":"+cSeconds;
}
function startShowTime() {
  window.setInterval("showTime()",1000);
}
</script>
<body onload="startShowTime()">
<input id="tLocal">
</body>
</html>
Avatar billede nephilim Nybegynder
23. maj 2003 - 05:39 #2
Tror ikke der er andre løsninger end overstående, javascript bliver jo udført på computeren hos brugeren, og er derfor synkroniseret med "windows uret", der jo er synkroniseret med "maskin uret". Så du må lægge den forskel på som du vil have. Jeg er ikke helt klar over hvor meget af den normale Java calender funktion der er med i javascript, ellers kunne du bruge tidszoner??

/Nephilim
Avatar billede mortrr Praktikant
23. maj 2003 - 12:03 #3
Man kunne godt lave en funktion som talte et fiktivt ur op en gang i sekundet, men det andet giver et mere præcist ur. Nedenstående har en tendens til at afvige efter et stykke tid.

<html>
<script>
function AddNul(inp) {
    inp=""+inp;
    if (inp.length<2) inp="0"+inp;
    return inp;
}

function showTime() {
  curTime.setSeconds(curTime.getSeconds()+1);

  cSeconds=AddNul(curTime.getSeconds());
  cMinutes=AddNul(curTime.getMinutes());
  cHours  =AddNul(curTime.getHours());

  document.all("tLocal").value=""+cHours+":"+cMinutes+":"+cSeconds;
}
function startShowTime() {
  curTime=new Date(2003,0,1,0,0,0);
  window.setInterval("showTime()",1000);
}
</script>
<body onload="startShowTime()">
<input id="tLocal">
</body>
</html>
Avatar billede webhest Nybegynder
23. maj 2003 - 12:41 #4
mortrr >> Når man bruger den første der...så viser den i et Textfelt...

Kan man ikke lave så den bare skriver det som tekst, det har jeg set et par steder!
Avatar billede mortrr Praktikant
23. maj 2003 - 13:06 #5
Jow, så bruger du bare innerText på et eller andet. Fx en div:

<div id="tLocal">
og
document.all("tLocal").innerTeExt=""+cHours+":"+cMinutes+":"+cSeconds;

Grunden til at man normalt bruger en input, er at det er nemmere at få til at virke i alle browsere.

Hvis du laver en lille formular:
<form name="fUret">
<input name="tLocal">
</form>
kan man i alle browsere ramme den med
document.fUret.tLocal.value=""+cHours+":"+cMinutes+":"+cSeconds;
Ellers skal du kontrollere om det er IE eller Netscape, og bruge forskellige metoder til at indlægge værdien.

Man kan jo godt fjerne border på en input, og sikre at brugere ikke kan rette i den:
<form name="fUret" onsubmit="return false">
<input name="tLocal" readonly style="border:0px;font-family:Verdana">
</form>
Avatar billede olebole Juniormester
23. maj 2003 - 15:49 #6
<ole>

Du kan kikke i disse to spm, hvor jeg lavede et eksempel, der henter servertiden og regner videre på den - via computerens ur:
  http://www.eksperten.dk/spm/345599
  http://www.eksperten.dk/spm/347865

Du kan sagtens komme udenom form-felter (og i stedet skrive ind i et div) i stort set alle browsere, hvis du skriver ordentlig kode - og laver en lille special-ting for NS4:

var myTxt = cHours+":"+cMinutes+":"+cSeconds;
if (document.all) document.all["tLocal"].innerHTML = myTxt;
else if (document.getElementById) document.getElementById("tLocal").innerHTML = myTxt;
else if (document.layers) {
    document.layers["tLocal"].document.open();
    document.layers["tLocal"].document.write(myTxt);
    document.layers["tLocal"].document.close();
}

/mvh
</bole>
Avatar billede lrd Nybegynder
26. juni 2003 - 08:24 #7
Avatar billede webhest Nybegynder
26. oktober 2003 - 21:24 #8
lukker spg
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