Avatar billede sp Nybegynder
28. april 2003 - 09:07 Der er 47 kommentarer og
1 løsning

udregning af tid

Jeg skal bruge et script der v.h.a. af indtastning af timer og minutter udregner hvad klokken vil blive når tiden går. Altså hvis man f.eks. indtaster "12:00" og der så går et minut så vil den vise 12:01. Jeg behøver ikke have sekunder med, men kun timer og minutter.

mvh
SP
Avatar billede olebole Juniormester
28. april 2003 - 12:28 #1
<ole>

<script type="text/JavaScript">
function startTime() {
    var now, tims, mins, f = document.forms[0];
    now = new Date();
    tims = now.getHours();
    mins = now.getMinutes();
    if (tims<10) tims = "0" + tims;
    if (mins<10) mins = "0" + mins;
    f.t.value = (f.t.value.indexOf(":")!=-1)? tims + " " + mins : tims + ":" + mins;
    setTimeout("startTime()", 1000);
}
</script>
<form onsubmit="startTime();return false;">
    <input type="text" name="t">
    <button onclick="startTime()">Start</button>
</form>

------------------------------

Denne linie:
  f.t.value = (f.t.value.indexOf(":")!=-1)? tims + " " + mins : tims + ":" + mins;
gør at ':' står og blinker. Ønsker du ikke det, kan du skrive:
  f.t.value = tims + ":" + mins;

Uret starter enten ved et tryk på knappen - eller ved at taste 'Enter' i feltet.
/mvh
</bole>
Avatar billede sp Nybegynder
28. april 2003 - 17:28 #2
Hvor kan jeg indtaste tiden. Jeg skal ikke hente tiden fra computerens ur, men scriptet skal udregne tiden som går efter det som man har indtastet. Det er altså ikke noget almindeligt ur.
Avatar billede sp Nybegynder
28. april 2003 - 17:36 #3
Jeg har prøvet om jeg kunne få noget ud af det, men indtil videre ser det ikke ud til at jeg kan bruge det til det jeg ønsker
Avatar billede sp Nybegynder
28. april 2003 - 17:40 #4
Prøv lige at læse mit spm. en gang til. Det er ikke et almindeligt ur jeg skal bruge:-)
Avatar billede olebole Juniormester
28. april 2003 - 20:21 #5
Du kan for den sags skyld godt undlade at bruge Date-objektet og nøjes med en JS-timer, men så bliver det noget frygtelig unøjagtigt skrammel, er du helt sikker på, det er, hvad du vil have?

Hvordan skal du bruge det - og til hvad? Måske, der kunne findes en brugbar løsning(?)  :)
/mvh
Avatar billede sp Nybegynder
28. april 2003 - 20:30 #6
Må jeg se hvad du mener?
Avatar billede olebole Juniormester
28. april 2003 - 20:37 #7
Må jeg høre, hvad du mener?
Avatar billede sp Nybegynder
28. april 2003 - 20:42 #8
:-)
Du skrev: Du kan for den sags skyld godt undlade at bruge Date-objektet og nøjes med en JS-timer ....

Prøv lige af vise mig hvordan.
Bliver det upræcist? Jeg vil gerne prøve at se hvor upræcist det bliver.
Avatar billede sp Nybegynder
28. april 2003 - 20:45 #9
Det er forresten meget fancy at det står og blinker.
Avatar billede olebole Juniormester
28. april 2003 - 20:49 #10
Det bliver _meget_ unøjagtigt - og unøjagtigheden er afhængig af, hvad PC'en ellers laver (det er noget skrammel).
Jeg gider ikke sidde og skrive noget ubrugeligt. Hvor unøjagtigt må det være?
Avatar billede sp Nybegynder
28. april 2003 - 20:53 #11
OK. Jeg vil gerne have tiden fra serveren vist. Mit problem er bare at tiden fra serveren er kun nøjagtig når siden bliver indlæst. Derfor ville jeg bruge javascript til at vise tiden nogenlunde imellem indlægningerne af siden.
Men det kan godt være det bliver for unøjagtigt.
Avatar billede sp Nybegynder
28. april 2003 - 20:57 #12
Variablen får jeg fra serveren
Avatar billede olebole Juniormester
28. april 2003 - 21:26 #13
Hvilket serversprog bruger du?
Avatar billede sp Nybegynder
28. april 2003 - 21:28 #14
ASP/VBscript som kører på serveren. Jeg kunne også løse det med et frameset som opdaterer sig selv engang imellem
Avatar billede olebole Juniormester
28. april 2003 - 21:39 #15
Nej, det ville være unødigt serverfråds. Jeg prøver at banke en mere nøjagtig én sammen til dig  :)
Avatar billede sp Nybegynder
28. april 2003 - 21:51 #16
Nej det ville ikke være serverfråds. framesettet bliver så lille at det kommer til at køre meget hurtigt. Jeg har lavet en chat som virker perfekt! den opdaterer sig selv
Avatar billede olebole Juniormester
28. april 2003 - 21:58 #17
Serverfråds, nevertheless. Chats i script-sprog er skoleeksemplet på, hvad  serverfråds er.
Derudover er 9,95 ud af 10 script-chats helt håbløst kodet - så serverbelastningen er unødig stor  :)
Avatar billede sp Nybegynder
28. april 2003 - 22:04 #18
Det fungerer ganske glimrende. Jeg er godt tilfreds med mit arbejde og det er der flere der er. Hvad ville du ellers anbefale som en chat?
Avatar billede olebole Juniormester
28. april 2003 - 22:05 #19
Et programmeringssprog
Avatar billede olebole Juniormester
28. april 2003 - 22:06 #20
Jeg kan love dig, din hosting-udbyder ikke er tilfreds med dit arbejde. Der er kun ganske, ganske få, der tillader den slags  :)
Avatar billede sp Nybegynder
28. april 2003 - 22:09 #21
Jeg er vist ikke helt med
Avatar billede olebole Juniormester
28. april 2003 - 22:10 #22
Hvad er du ikke med på?
Avatar billede sp Nybegynder
28. april 2003 - 22:11 #23
Jeg tror nu nok han er tilfreds med mit arbejde temmelig tilfreds. ASP er det eneste han tillader
Avatar billede sp Nybegynder
28. april 2003 - 22:12 #24
Du taler om script-sprog og porgrammeringssprog
Avatar billede olebole Juniormester
28. april 2003 - 22:22 #25
VBScript er et scriptsprog - ikke et programmeringssprog. Der er en verden til forskel  :)
Uagtet, han tillader ASP, kan jeg næsten garantere dig, han ikke bryder sig om, du har en hjemmestrikket chat liggende. Mon ikke, du skulle prøve at læse denne tråd:
  http://www.eksperten.dk/spm/342940
Avatar billede olebole Juniormester
28. april 2003 - 22:36 #26
<script language="jscript" runat="server">
var myTime = new Date().getTime();
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/JavaScript">
var servStamp, locStartStamp, inx, d = document;
servStamp = <%=myTime%>;
locStartStamp = new Date().getTime();
inx = 0;
function myWatch() {
    var now, tims, mins, timeGone = new Date().getTime() - locStartStamp;
    now = new Date(servStamp+timeGone);
    tims = now.getHours();
    mins = now.getMinutes();
    if (tims<0) tims = "0" + tims;
    if (mins<0) mins = "0" + mins;
    d.getElementById("ur_tim").innerHTML = tims;
    d.getElementById("ur_spacer").innerHTML = (inx%2)? "&nbsp;" : ":";
    d.getElementById("ur_min").innerHTML = mins;
    inx++;
   
    setTimeout("myWatch()",1000);
}
window.onload = function() {
    myWatch();
}
</script>
</head>
<body>

<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td id="ur_tim"></td>
    <td id="ur_spacer" style="width:8px;text-align:center;"></td>
    <td id="ur_min"></td>
</tr>
</table>

</body>
</html>
Avatar billede sp Nybegynder
28. april 2003 - 22:36 #27
Jeg tror han er godt tilfreds. Jeg har lavet masser af ASP, det fungerer tæmmeligt fint. Det er blevet meget populært.

Jeg må lave mine opgaver indenfor det han understøtter. Han understøtter ikke andet end det jeg laver. Så det må han være tilfreds med. Han har jo selv valgt det han understøtter.
Avatar billede sp Nybegynder
28. april 2003 - 22:46 #28
Det var præcis det jeg ledte efter.
Avatar billede olebole Juniormester
28. april 2003 - 22:55 #29
Ja, han har selv valgt det - men _du_ har valgt at lave en chat  ;o)

Hvis du læser reglerne for webhotellet, er det mere end sandsynligt, det udtrykkelig er forbudt. Der er ikke plads til mere end nogle ganske få script-chats på en server (kun et par stykker) - så går den i knæ. Så er det fuldstændig ligegyldigt, om du har lavet meget eller lidt ASP.
Prøv at forestille dig, hvis 30-40 af de sites, der ligger på den server gjorde det  =8-O
Avatar billede olebole Juniormester
28. april 2003 - 23:03 #30
Det glæder mig, du kunne bruge det ... så kan vi jo få lukket spm'et  ;o)
Avatar billede sp Nybegynder
29. april 2003 - 08:12 #31
Ja og chatten fungerer upåklageligt. Du ved ikke hvordan den er lavet.

Ja jeg kan bruge det, men sagde du ikke den ville blive meget upræcis?. Det er jo det samme script som du startede med at give som svar, blot med nogle enkelte tilføjelser.
Avatar billede sp Nybegynder
29. april 2003 - 09:27 #32
normalt lukker jeg først et spm. når det virker. Koden ser rigtig ud, men det virker ikke. servStamp ser også mærkelig ud
servStamp = 1051601032694;
Avatar billede sp Nybegynder
29. april 2003 - 11:51 #33
Der er ingen fejlmelding på noget som helst. Den viser bare intet.
Avatar billede sp Nybegynder
29. april 2003 - 12:28 #34
Så nu virker det pludselig, men det er ikke Crossbrowser-sikret.
Avatar billede olebole Juniormester
29. april 2003 - 14:36 #35
Ehhhhhhh ..... nå ...?!??!!! Hvad mener du med "Crossbrowser-sikret"?
Det virker da fint i de væsentlige browsere  :)
/mvh
Avatar billede sp Nybegynder
29. april 2003 - 17:14 #36
Hvad med document.layers og document.all?
Avatar billede olebole Juniormester
29. april 2003 - 17:50 #37
Skal det også skrives med runer?  :D
Mener du virkelig, du vil have de antikviteter med? Det er f.eks. langt under 1%, der bruger NS4.X.
/mvh
Avatar billede sp Nybegynder
29. april 2003 - 20:41 #38
tjaa, jeg vil gerne gøre lidt for dem. Der er stadig nogle der kører det.
Avatar billede olebole Juniormester
29. april 2003 - 20:46 #39
Okay .... dette burde vise princippet for den ene af linierne:

if (d.layers) {
    d.layers["ur_tim"]document.open();
    d.layers["ur_tim"]document.write(tims);
    d.layers["ur_tim"]document.close();
}
if (d.all) {
    d.all["ur_tim"].innerHTML = tims;
}
else d.getElementById("ur_tim").innerHTML = tims;
Avatar billede olebole Juniormester
29. april 2003 - 20:47 #40
Ooooops ....:

if (d.layers) {
    d.layers["ur_tim"].document.open();
    d.layers["ur_tim"].document.write(tims);
    d.layers["ur_tim"].document.close();
}
if (d.all) {
    d.all["ur_tim"].innerHTML = tims;
}
else d.getElementById("ur_tim").innerHTML = tims;
Avatar billede sp Nybegynder
29. april 2003 - 20:48 #41
Det ser fint ud.
Avatar billede sp Nybegynder
30. april 2003 - 06:34 #42
Først finder vi serverens tid i sekunder fra 1970 og til tidspunktet hvor siden er blevet indlæst (servStamp). Så finder vi klientens tid i sekunder fra 1970 til siden er blevet indlæst(locStartStamp). Så trækker vi locStartStamp fra tiden i sekunder fra 1970 til nu. Så vil vi få "mellemtiden" fra siden er blevet indlæst og til nu(timeGone). timGone lægger vi så sammen med servStamp og får så et synkroniseret ur efter serveren. Det er smart!:-)
Avatar billede sp Nybegynder
30. april 2003 - 07:07 #43
hov nu skrev jeg sekunder. Det er millisekunder det kører på:-)
Avatar billede sp Nybegynder
01. maj 2003 - 16:03 #44
Lige en detajle. Der skal da ikke stå 
if (tims<0) tims = "0" + tims;
if (mins<0) mins = "0" + mins;

Mindre end 0??? Du mener mindre end 10. Der skal stå:

if (tims<10) tims = "0" + tims;
if (mins<10) mins = "0" + mins;
Avatar billede olebole Juniormester
01. maj 2003 - 17:11 #45
*LoooL*  Naturligvis ... sorry  :D
Avatar billede sp Nybegynder
03. maj 2003 - 11:43 #46
Hej igen.

Jeg vil gerne have at scriptet returnerer tiden så jeg kan indsætte tiden i et array, men det jeg har forsøgt at gøre, giver en fejlmelding. Hvordan gør man?


<script language="jscript" runat="server">
var myTime = new Date().getTime();
</script>
<script language="javascript">
var servStamp, locStartStamp, inx, myTime d = document;
servStamp = <%=myTime%>;
locStartStamp = new Date().getTime();
inx = 0;
function myWatch() {
    var now, tims, mins, spacer, timeGone = new Date().getTime() - locStartStamp;
    now = new Date(servStamp+timeGone);
    tims = now.getHours();
    mins = now.getMinutes();
    secs = now.getSeconds();
   
    if (tims<10) tims = "0" + tims;
    if (mins<10) mins = "0" + mins;
    if (secs<10) secs = "0" + secs;

 
    spacer= (inx%2)? "&nbsp;" : ":";
    return(tims + spacer + mins + "&nbsp;" + secs)
   
  }
inx++;
   
setTimeout("myWatch()",1000);
}
</script>

scrollercontent[9]='Klokken er nu' + myWatch() + '.'

Den giver en fejlmelding. Hvad er der galt?
Avatar billede sp Nybegynder
03. maj 2003 - 11:53 #47
Så nu viser den klokken, men uret bliver ikke opdateret

var servStamp, locStartStamp, inx, spacer, d = document;
servStamp = <%=myTime%>;
locStartStamp = new Date().getTime();
inx = 0;
function myWatch() {
    var now, tims, mins, spacer, timeGone = new Date().getTime() - locStartStamp;
    now = new Date(servStamp+timeGone);
    tims = now.getHours();
    mins = now.getMinutes();
    secs = now.getSeconds();
   
    if (tims<10) tims = "0" + tims;
    if (mins<10) mins = "0" + mins;
    if (secs<10) secs = "0" + secs;

 
    spacer= (inx%2)? "&nbsp;" : ":";
return(tims + spacer + mins + "&nbsp;" + secs)
   

inx++;
   
setTimeout("myWatch()",1000);
}
Avatar billede sp Nybegynder
03. maj 2003 - 12:32 #48
Har oprettet et nyt spm. til løsning af mit problem:
http://www.eksperten.dk/spm/347865
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