Avatar billede Slettet bruger
24. april 2010 - 18:44 Der er 5 kommentarer og
1 løsning

Live ur med servertid fra ASP

Hej.

Jeg har fundet mig et lille JavaScript, som finder serverens tid vha. ASP, og derefter tilføjer et nyt sekund, hvert sekund. Det virker faktisk rigtig godt... i Internet Explorer

Problemet er nemlig, at jeg i Firefox får resultatet: "NaN:NaN:NaN"
Jeg ved at NaN står for Not a Number, men jeg er ikke klar over HVORFOR den skriver det her. Det virker jo i IE.

Nogen der kan hjælpe?

Koden:

<script type='text/javascript'>
var serverDate;

function getServerDate() {
  serverDate = new Date("<%=now()%>");
}

function tick() {
  serverDate.setSeconds(serverDate.getSeconds() + 1); 
  var hour = serverDate.getHours();
  var min = serverDate.getMinutes();
  if (min < 10) min = "0" + min;
  var sec = serverDate.getSeconds();
  if (sec < 10) sec = "0" + sec;
  document.getElementById("clock").innerHTML = hour + ":" + min + ":" + sec;
}

window.onload = function() {
  getServerDate();
  setInterval("tick()", 1000);
}
</script>

<%
response.write("<span id='clock'>" & time() & "</span>")
%>
Avatar billede The_Buzz Novice
24. april 2010 - 19:32 #1
Avatar billede Slettet bruger
24. april 2010 - 20:25 #2
Det er jo ikke et svar på mit spørgsmål, men blot et alternativ til scriptet.

Jeg søger en løsning på FF problemet i netop DETTE script.
Avatar billede Slettet bruger
28. april 2010 - 10:37 #3
Jeg kender ikke ASP men ku' du ikke levere serverens tid en gang for alle:

<script type='text/javascript'>
var serverDate = new Date("<%=now()%>");

function tick() {
  serverDate.setSeconds(serverDate.getSeconds() + 1);
  var hour = serverDate.getHours();
  var min = serverDate.getMinutes();
  if (min < 10) min = "0" + min;
  var sec = serverDate.getSeconds();
  if (sec < 10) sec = "0" + sec;
  document.getElementById("clock").innerHTML = hour + ":" + min + ":" + sec;
}

window.onload = function() {
  setInterval("tick()", 1000);
}
</script>
Avatar billede Slettet bruger
01. maj 2010 - 22:15 #4
Jo det kunne jeg sagtens, men det løser bare ikke rigtig problemet.

Har fundet ud af, at problemet er i ASPens output.
<%=now()%> fremkalder åbenbart en et output som hedder f.eks. "01-05-2010 21:16:54" på en dansk server.
Men denne type dato output kan bare ikke bruges i FireFox, kun i Internet Explorer.
FireFox vil have det på en irriterende engelsk måde, f.eks. "May 1, 2010 21:16:54"  - Kun på den måde, kan den finde ud af at det faktisk er en rigtig dato.

Hvordan ændre jeg noget af dette? Det er vidst ikke muligt at lave det om i ASP, så det skal altså være i JS.
Avatar billede Slettet bruger
01. maj 2010 - 22:41 #5
http://www.javascriptkit.com/jsref/date.shtml

Det irriterende er at M$ opfinder sine egne "standarder"
Avatar billede Slettet bruger
02. maj 2010 - 20:56 #6
Hej T4NK3R.

Jeg havde godt fundet den side, men kunne ikke rigtigt dreje det ind på noget rigtigt..

Dog prøvede jeg i aftes at oprette et spørgsmål i ASP kategorien, og softspot kom så med en løsning i dag :)

Løsningen kan ses på:
http://www.eksperten.dk/spm/908550

Af samme grund, får softspot pointsene i den anden kategori, da han kom med et konkret forslag til en løsning :) Ellers mange tak.
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