Avatar billede tblaster Nybegynder
07. marts 2003 - 15:29 Der er 8 kommentarer og
1 løsning

Scrtipt timeout

Hejsa

Jeg har et problem med min kode og det er når min slut tid (Session("Slut"))er 24 så får jeg script timeout. Hvad er det der er galt? Jeg vil mene det er noget i denne kode:

startTid = Session("tid")
do while CDate(startTid) <= CDate(Session("Slut"))
  tider = tider & "," & formatdatetime(CDate(startTid),4)
  startTid = DateAdd("n",30,startTid) 
loop
if tider <> "" then tider = Mid(tider,2)
Avatar billede jgp Nybegynder
07. marts 2003 - 21:20 #1
Uden at have testet, så tror jeg det er fordi klokken jo ladrig kommer over 24. Den når max til 23:59.
Avatar billede tblaster Nybegynder
09. marts 2003 - 10:17 #2
Hvorfor det? Den er jo sat til at gøre det indtil at CDate(startTid) = CDate(Session("Slut")) ... altså skulle den også gennemløbe det med kl 24:00!
Avatar billede jgp Nybegynder
10. marts 2003 - 09:02 #3
Hvis du har et digital ur, så prøv at holde øje med hvornår det står på 24:00 (Hint, det gør det ikke).

Når du ligger 30 min. til 23:30, starter uret forfra og bliver 00:00 og derfor looper dit script.
Avatar billede tblaster Nybegynder
10. marts 2003 - 18:46 #4
jqp .. det er jo lidt lige meget når jeg har lavet scriptet til at køre fra 7 til 24. Jeg kunne fint sættet det til at køre til 25 hvis det skulle være det da jeg med vilje ikke har sat det til at køre som et ur men bare som tal!
Avatar billede jgp Nybegynder
11. marts 2003 - 08:37 #5
Prøv dette:
do while CDate(startTid) <= CDate(Session("Slut"))
  Response.Write "Er " & CDate(startTid) & " mindre eller = " & CDate(Session("Slut")) & "<br>"
  tider = tider & "," & formatdatetime(CDate(startTid),4)
  startTid = DateAdd("n",30,startTid) 
loop
Avatar billede tblaster Nybegynder
11. marts 2003 - 12:16 #6
Det giver også bare script timeout
Avatar billede jgp Nybegynder
11. marts 2003 - 12:25 #7
Hmm meningen var at du skulle se på det output som den kode gav, ud fra det vil du måske kunne se hvad der går galt.

Men, du siger du har sat det til at køre som et tal:
do while CDate(startTid) <= CDate(Session("Slut"))
Den linie der har ikke tal, men dato værdier.
Avatar billede tblaster Nybegynder
11. marts 2003 - 12:36 #8
Ahh ... det har du da ret i ... hvad skal jeg så vælge at skrive det som? bare lave følgende:
do while startTid <= Session("Slut")
Avatar billede jgp Nybegynder
11. marts 2003 - 12:47 #9
Tja, det kommer lidt an på hvad ud vil. Jeg vil nok bruge DataDiff() til at regne forskellen ud imellem de 2 tidspunkter. Og så lave en For løkke istedet for Do løkken.
Måske noget ligende:
TimeToRun = DateDiff("n", startTime, endTime)
For i = 0 To TimeToRun Step 30
  tider = tider & formatdatetime(DateAdd("n",i,startTid),4) & ","
Next
tider = Left(tider, Len(tider)-1)

Men husk at startTime og endTime skal være valide date/time værdier.
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
Kurser inden for grundlæggende programmering

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