webForumDet fria alternativet

återstående tid.

ASP

47 svar · 737 visningar · startad av Qimen · sida 2 av 3

Frågan, av Qimen

Hej Jag har ett datum, kan man lägga på 6 timmar på det och sedan räkna ut hur lång tid det e kvar till det nya tiden i timmar och minuter och sedan skriva ut det? det första datumet/tidpunkten har jag i en mysql databas med typen datetime.

Läs frågan i sin helhet →
Medlem sedan mars 20032 667 inlägg
#21

Qimen skrev:

K@llen skrev:

Ett möjligt fel kan vara att vb-motorn och mysql har olika datumformat. Kontrollera inte bara subtyperna som @nders sade utan kolla också så att datumen har samma format, dvs att vb-motorns now() har samma format som ditt fält i databasen.

höh? vad menar ni med det?

Vad får du för utskrift om du i din asp-kod skriver:

response.write now()
Medlem sedan juni 20015 009 inlägg
#22

Iofs kanske problemmet ligger där jag lägger till datumet, jag lägger inte till det på det vanliga sättet. Lägger till det så här:

when datumnydag between concat(current_date,' ','00:00:00') and concat(current_date,' ','05:59:59') then concat(current_date,' ','00:00:00')

^^ Pga jag vill ha datumet till en jämn punkt, ex 12:00:00
Men det ska väl inte spela ngn roll, den godkänner att lägga till det i ett datumformat och då bör det väl vara ok. eller?

Medlem sedan juni 20015 009 inlägg
#23

K@llen skrev:

Vad får du för utskrift om du i din asp-kod skriver:

response.write now()

--> 2003-04-26 14:04:33

Medlem sedan juni 20015 009 inlägg
#24

Humm jag tror jag löste det nu. :)

<%
newDate = DateAdd("h", 6, recset2("PixTid"))
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft
%>

Då blir det rätt.

Medlem sedan mars 20032 667 inlägg
#25

Om du verkligen jämför med värdet "2003-04-26 12:00:00" så ska det inte vara några beskymmer. Då testar vi @nders förslag också. Fungerar inte det är jag lost. ;)

convertedDate = cdate(dbFieldDate)
newDate = DateAdd("h", 6, convertedDate)
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft
Medlem sedan juni 200032 967 inlägg
#26

Jag gissar på att yourFieldDate aldrig fick ett värde innan användning? Då får man sådana fjukiga värden som Qimen fick. ;)

Mvh

Medlem sedan juni 20015 009 inlägg
#27

K@llen skrev:

Om du verkligen jämför med värdet "2003-04-26 12:00:00" så ska det inte vara några beskymmer. Då testar vi @nders förslag också. Fungerar inte det är jag lost. ;)

convertedDate = cdate(dbFieldDate)
newDate = DateAdd("h", 6, convertedDate)
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft

Hade löst det, och sen funka inte den koden heller ;)
Men därimot fick jag lite problem till, om jag vill ha reda på minuter också, hur gör jag då? Jag tog en titt här men det ville inte funka :r

Medlem sedan juni 20015 009 inlägg
#28

@nders skrev:

Jag gissar på att yourFieldDate aldrig fick ett värde innan användning? Då får man sådana fjukiga värden som Qimen fick. ;)

Mvh

Fattar nada men det stämmer nog :OO :e
Har typ bara gjort en connection sträng och sedan öppnat och hämtat data.

Medlem sedan juni 20015 009 inlägg
#29

Men som det är nu får jag det i timmer och det funkar. Jag kan även byta ut så att den visar minuter osv.
Men hur ska jag göra så att den visar hur många minuter som e kvar på denna timma? ex. Nu är det 3 timmar och 15 minuter kvar till datum

Medlem sedan juni 200032 967 inlägg
#30
  1. dra bort det antal timmar du fick fram med dateadd, från tiden du jämförde med.
  2. använd datediff och ange att det är minuter du vill ha.

Mvh,

Medlem sedan juni 20015 009 inlägg
#31

@nders skrev:

  1. dra bort det antal timmar du fick fram med dateadd, från tiden du jämförde med.
  2. använd datediff och ange att det är minuter du vill ha.

Mvh,

hmmm :l Hur menar du?
Ska jag ändra på den befintliga koden

newDate = DateAdd("h", 6, recset2("PixTid"))
timeLeft = DateDiff("h", now(), newDate)

eller ska jag göra en till där jag minskar med ngt ifrån den första.
/me e nog ute och svammlar nu :p

Medlem sedan juni 200032 967 inlägg
#32

Jag kände på mig att det skulle komma en följdfråga, så jag höll inne med koden så du skulle försöka först. :D

newDate = DateAdd("h", 6, recset2("PixTid"))
intTimmar = DateDiff("h", now(), newDate)
newDate = DateAdd("h", -intTimmar, newDate)
intMinuter = DateDiff("n", now(), newDate)

response.write intTimmar & " timmar och " & intMinuter & " minuter kvar, för böveln!"

Red: om man vill så kan man ju alltid kontrollera så antal timmar är större än 1 så man inte skriver ut "1 timmar", men det är din läxa. ;)

Mvh,

Medlem sedan juni 20015 009 inlägg
#33

Hehe
(fast jag löste det nästan, fick lite hjälp i #wf på dalnet)
Jaja tack för koden men något blev fel :l
2 timmar och -36 minuter kvar, för böveln!
^^ borde ha blivit 1 timme och 24 mintuer

Medlem sedan juni 200032 967 inlägg
#34

Vad får du för utskrift om du kör

response.write recset2("PixTid")

?

Medlem sedan juni 20015 009 inlägg
#35

2003-04-26 12:00:00

Medlem sedan juni 20015 009 inlägg
Medlem sedan juni 200032 967 inlägg
#37

Du borde få något helt annat, -4 timmar och -46 minuter kvar, eftersom den tid du skickar in redan har passerat?

Dessutom vill jag att du använder CDate innan du använder datumet från databasen:

newDate = DateAdd("h", 6, CDate(recset2("PixTid")))

red: din serverklocka verkar alltså gå två timmar fel.

Mvh

Medlem sedan juni 20015 009 inlägg
#38

Men alltså på den tiden ska det ju läggas till 6 timmar så att tiden egentligen blir 2003-04-26 18:00:00
Sen just nu är min klocka 16:50 på servern. Men det att den visade 2 timmar e väl för att avrundat e det 2 timmar, och sen kommer minuterna ju, så man måste väll minska timmar med en hela tiden. kanske?

Medlem sedan juni 20015 009 inlägg
#39

Med den nya koden får jag: 2 timmar och 68 minuter kvar...

RED: glömde ersätta andra raden också, så tiden blev 2 timmar och 68 minuter kvar

Medlem sedan juni 200032 967 inlägg
#40

Hm, glöm det. Jag återkommer. :)

Mvh,

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)