Avatar billede ravnborg Nybegynder
09. maj 2002 - 09:11 Der er 22 kommentarer og
1 løsning

Ur på hjemmesiden med hjælp fra ASP

Jeg skal have et ur til at køre på min hjemmeside. Jeg har fundet mange gode, som tager start tidspunktet fra klientens computer. Jeg skal bruge et ur som tager start tidspunktet fra serveren, altså en asp variabel som kører vidre i javascript !!

Håber at i forstod det!

Ravnborg
Avatar billede hotcut Nybegynder
09. maj 2002 - 09:17 #1
bare brug de scripts, som kører på klokken fra clienten.

Skriv på client-side:

<script>tid = "<%=now()%>"</script>

Derefter bruger du variablen "tid" i javascript, til at finde klokken :)
I stedet for at javascript skriver getDate() etc... ændrer du det bare til "tid".
Avatar billede jakoba Nybegynder
09. maj 2002 - 09:27 #2
<FORM name='example24'  method=post action="" onsubmit="return false">
24 hour Watch<FONT FACE="Courier"><b>
<INPUT TYPE="text" NAME="inBox" value="" size="8">
</b></FONT>
</FORM>
<script language='JavaScript'> <!--

var tidFraServer = <% =tid_i_millisekunder %>+2000; 
//**********  indsæt tid i millisecs efter 1970


function updateWatch24() { // update the watch
 
  var tid = new Date( (tidFraServer+=1000) );    // lav et dato objekt

  var h = tid.getHours();
  hrs = (h>=10)?(""+h):("0"+h);  // hours

  m=tid.getMinutes();
  mns = (m>=10)?(":"+m):(":0"+m); // minutes

  s=tid.getSeconds();
  scs = (s>=10)?(":"+s):(":0"+s); // seconds

  document.example24.inBox.value = hrs+mns+scs;
          // write the new time in the textfield

}; // updateWatch24

setTimeout("setInterval('updateWatch24()',1000)",2000); // start om 2 sekunder
          // gentag hvert sekund 1000 milliseconds

// --> </script>

mvh JakobA
Avatar billede code_master Nybegynder
09. maj 2002 - 09:38 #3
<html>
<head>
<title>wdasoie</title>
</head>
<body>
Her er tiden på computeren <%=time %>
<br>Her er tiden på din computer < ved ikke >
Avatar billede ravnborg Nybegynder
09. maj 2002 - 09:41 #4
ASP er jeg rimelig sikker i men javascript har jeg aldrig arbejdet med!

Så jeg håber at en af jer kan flette Hotcut og Jakoba's svar sammen så tror jeg uret virker!

V.H.
Ravnborg
Avatar billede jakoba Nybegynder
09. maj 2002 - 10:20 #5
hvis  'now()'  er unix-epoc i millisekunder (dvs et stort tal) er det blot det du skal sætte ind istedet for  'tid_i_millisekunder'

hvis now er en tekststreng skal den tekststreng fortolkes til det korrekte tidspunkt. Kan du angive formatet?

Hvis now er noget tredie skal vi igen blot vide præcis hvad det noget tredie er.

mvh JakobA
Avatar billede hotcut Nybegynder
09. maj 2002 - 10:22 #6
<FORM name='example24'  method=post action="" onsubmit="return false">
24 hour Watch<FONT FACE="Courier"><b>
<INPUT TYPE="text" NAME="inBox" value="" size="8">
</b></FONT>
</FORM>
<script language='JavaScript'> <!--

var tidFraServer = <%=formatmiliseconds(now()) %>+2000; 
//**********  indsæt tid i millisecs efter 1970


function updateWatch24() { // update the watch
 
  var tid = new Date( (tidFraServer+=1000) );    // lav et dato objekt

  var h = tid.getHours();
  hrs = (h>=10)?(""+h):("0"+h);  // hours

  m=tid.getMinutes();
  mns = (m>=10)?(":"+m):(":0"+m); // minutes

  s=tid.getSeconds();
  scs = (s>=10)?(":"+s):(":0"+s); // seconds

  document.example24.inBox.value = hrs+mns+scs;
          // write the new time in the textfield

}; // updateWatch24

setTimeout("setInterval('updateWatch24()',1000)",2000); // start om 2 sekunder
          // gentag hvert sekund 1000 milliseconds

// --> </script>
Avatar billede ravnborg Nybegynder
09. maj 2002 - 10:29 #7
Det kan jeg ikke få til at virke!

der vises et tomt form felt. Og når jeg sætter det ind bliver resten af siden bliver ikke vist!
Avatar billede hotcut Nybegynder
09. maj 2002 - 10:31 #8
ved ikke om javascriptet er korrekt... indsatte bare tiden i milisecunder, som jakoba sagde...
Avatar billede Slettet bruger
09. maj 2002 - 11:01 #9
Ravnborg>> URL, please!
Avatar billede Slettet bruger
09. maj 2002 - 11:03 #10
Desuden er der vist to l'er i formatmilliseconds(now())

Måske er det dér, fejlen ligger!
Avatar billede hotcut Nybegynder
09. maj 2002 - 11:04 #11
han nævnte ikke noget om en ASP fejl... der burde komme en, hvis jeg stavede forkert...
Avatar billede Slettet bruger
09. maj 2002 - 11:06 #12
Ja, men for det første staves milliseconds generelt med to l'er, og for det andet viste en Google-søgning på "milliseconds" ét resultat, mens "miliseconds" ikke gav nogen!
Avatar billede Slettet bruger
09. maj 2002 - 11:09 #13
Findes der overhovedet en indbygget funktion, der kan vise antal millisekunder?

(Se her: http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=73 )
Avatar billede ravnborg Nybegynder
09. maj 2002 - 11:34 #14
Når jeg tager vis kilde

skriver den på siden.
Der opstod en Microsoft VBScript-k&#248;rselsfejl fejl '800a000d'
<p>
Typerne passer ikke sammen: 'formatmilliseconds'



Første forsøg på en ur fra jakoba virkede men uret startede altid med klokken 1.
Nu er feltet tomt og alt efter er væk!

V.H.
Ravnborg
Avatar billede jakoba Nybegynder
09. maj 2002 - 11:38 #15
Indsæt en linie:
    document.write( "<br>now() er '<% =NOW() %>'<BR> ); lige efter linien med <script...

og paste så den ekstra linie på siden der kommer ud af det ind her.
Avatar billede ravnborg Nybegynder
09. maj 2002 - 12:11 #16
Den skriver ikke noget ekstra, med sætningen
document.write( "<br>now() er '<% =NOW() %>'<BR> );
Jeg prøvede også med
document.write( "<br>now() er '<% =NOW() %>'<BR>" );
Det gav heller ikke noget

Det er i sætningen <%=formatmiliseconds(now()) %> at problemet ligger hvis man fjerner formatmiliseconds viser den resten af siden, men feltet til uret er stadig tomt!

Jeg har også prøvet med 2 L'er


Ravnborg
Avatar billede jakoba Nybegynder
09. maj 2002 - 12:40 #17
din anden version (med " forenden var korrekt. og burde give etellerandet.

de to l'er i milliseconds er korrekt.

Har du mulighed for at finde funktionen NOW() i din dokumentation og fortælle hvad den gør og hvad den returnerer (jeg har søgt i et kvarter på http://msdn.microsoft.com/library/ men uden at kunne finde sådan en funktion.)
Avatar billede ravnborg Nybegynder
09. maj 2002 - 12:44 #18
now() giver dato og klokkeslet

eks.  09-05-2002 12:45:28
Avatar billede ravnborg Nybegynder
09. maj 2002 - 12:58 #19
Jeg tror at jeg har fundet problemet!
Jeg kører ASP i VBscript. milliseconds er en komando i Jscript!
Så når jeg kører Jscript<%=formatmiliseconds(now()) %> fatter VB det ikke!

lad os sige at klokker er 12.00.00 i dag hvad er det så i millisekunder i javascript??
og hvordan udregnes det? Går man ikke ud fra en bestemt dato i 70'erne?
Avatar billede jakoba Nybegynder
09. maj 2002 - 13:06 #20
<FORM name='example24'  method=post action="" onsubmit="return false">
24 hour Watch<FONT FACE="Courier"><b>
<INPUT TYPE="text" NAME="inBox" value="" size="8">
</b></FONT>
</FORM>
<script language='JavaScript'> <!--

var nowString = "<% =NOW() %>"; // klokken lige nu (fra server)
nowString = nowString.split(" ");
if ( nowString.length != 2 ) {
    alert( "Næe, det er heller ikke det format now() returnerer" );
    var dagString = "09-05-2002";
    var tidString = "12:34:56";
} else {
    dagString = nowString[0];
    tidString = nowString[1];
}
var aar    =  parseInt( dagString.substr(6,4), 10 );
var maaned =  parseInt( dagString.substr(3,2), 10 );
var dag    =  parseInt( dagString.substr(0,2), 10 );
var time  =  parseInt( tidString.substr(0,2), 10 );
var minut  =  parseInt( tidString.substr(3,2), 10 );
var sekund =  parseInt( tidString.substr(6,2), 10 );
var tidFraServer = new Date( aar, maaned, dag, time, minut, sekund );
tidFraServer = tidFraServer.valueOf() +2000;
//**************  tid i millisecs efter 1970


function updateWatch24() { // update the watch

  var tid = new Date( (tidFraServer+=1000) );    // lav et dato objekt

  var h = tid.getHours();
  hrs = (h>=10)?(""+h):("0"+h);  // hours

  m=tid.getMinutes();
  mns = (m>=10)?(":"+m):(":0"+m); // minutes

  s=tid.getSeconds();
  scs = (s>=10)?(":"+s):(":0"+s); // seconds

  document.example24.inBox.value = hrs+mns+scs;
          // write the new time in the textfield

}; // updateWatch24

setTimeout("setInterval('updateWatch24()',1000)",2000); // start om 2 sekunder
          // gentag hvert sekund 1000 milliseconds

// --> </script>

mvh JakobA
Avatar billede jakoba Nybegynder
09. maj 2002 - 13:07 #21
Ja det lyder sandsynligt at de to sprog ikke bryder sig om at blive blandet.
Avatar billede ravnborg Nybegynder
09. maj 2002 - 13:39 #22
Sådan
Nu virker det!! "Kun på en server med dansk tidsformat ;-("

Nå men det kan jeg godt selv klip sammen når jeg får webhotel.

Du skal have tak for hjælpen jakoba

Ravnborg
Avatar billede jakoba Nybegynder
09. maj 2002 - 13:53 #23
takker.

ja det er lidt omstændigt at gå omkring en formatteret streng for at finde tiden.

Prøv at kikke efter andre tid-funktione i VBscript. Det lyder usandsynligt at der ikke skulle findes en der giver tiden som et enkelt unix-epoch tal, eller blot et andet tal, de er nemme at regne på så det passer.

mvh JakobA
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