webForumDet fria alternativet

återstående tid.

ASP

47 svar · 737 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

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.

Medlem sedan mars 20032 667 inlägg
#2
newDate = DateAdd("h", 6, now())
timeLeft = DateDiff("h", newDate, yourFieldDate)
response.write timeLeft

Då får du ut det i timmar. Resterande bör du väl kunna räkna ut själv om det går 60 sekunder på en minut och 60 minuter på en timme?

Medlem sedan juni 20015 009 inlägg
#3

Hmmm den la nog inte till 6 timmar på det datumet. Verkar inte så iaf. Av datumfältet i dbn som var - 2003-04-26 12:00:00 - skulle 6 timmar läggas till men resultat blev -905707 :q

Medlem sedan mars 20032 667 inlägg
#4

he, he jag fattade nog din fråga otroligt fel. ;)

newDate = DateAdd("h", 6, yourFieldDate)
timeLeft = DateDiff("h", yourFieldDate, newDate)
response.write timeLeft

Om du får + eller minus från din datediff() beror ju lite på hur datumen är relaterade till varandra. Är det nya datumet alltid större än datumet i databasen?

Medlem sedan juni 20015 009 inlägg
#5

K@llen skrev:

he, he jag fattade nog din fråga otroligt fel. ;)

newDate = DateAdd("h", 6, yourFieldDate)
timeLeft = DateDiff("h", yourFieldDate, newDate)
response.write timeLeft

Om du får + elle rminus i din datediff() beror ju lite på hur datumen är relaterade till varandra. Är det nya datumet alltid större datumet i databasen?

Det börjar närma sig nu, hmm jag kanske förklara lite dåligt, nu visa den 6 (timmar kvar till klockan sex), stämmer iofs men jag vill ha ifrån den tidpunkt som e just nu. :)

Medlem sedan juni 200032 967 inlägg
#6

Borde det inte vara att byta yourFieldDate mot Now() på datediff-raden? :q

Medlem sedan mars 20032 667 inlägg
#7

Menar du så här?

newDate = DateAdd("h", 6, yourFieldDate)
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft
Medlem sedan juni 20015 009 inlägg
#8

K@llen skrev:

Om du får + eller minus från din datediff() beror ju lite på hur datumen är relaterade till varandra. Är det nya datumet alltid större än datumet i databasen?

Det nya datumet kommer nog alltid vara större.

Medlem sedan juni 20015 009 inlägg
#9

bytar jag ut det till now så får jag -905695 i resultatet :l

Medlem sedan mars 20032 667 inlägg
#10

Qimen skrev:

K@llen skrev:

Om du får + eller minus från din datediff() beror ju lite på hur datumen är relaterade till varandra. Är det nya datumet alltid större än datumet i databasen?

Det nya datumet kommer nog alltid vara större.

Då bör det iställer vara:

newDate = DateAdd("h", 6, yourFieldDate)
timeLeft = DateDiff("h", newDate, now())
response.write timeLeft
Medlem sedan juni 20015 009 inlägg
#11
newDate = DateAdd("h", 6, yourFieldDate)
timeLeft = DateDiff("h", newDate, now())
response.write timeLeft

Humm då får jag istället 905695

Medlem sedan juni 200032 967 inlägg
#12

Vad innehåller yourFieldDate? Har du gjort om det till subtypen datum innan du försöker använda det?

Koden fungerar utmärkt när jag testar hos mig i alla fall.

Medlem sedan mars 20032 667 inlägg
#13

När jag kör denna får jag 5 timmar som utskrift:

newDate = DateAdd("h", 6, "2003-04-26 12:00:00")
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft
Medlem sedan juni 20015 009 inlägg
#14

Humm det funkar om jag kör med

newDate = DateAdd("h", 6, "2003-04-26 12:00:00")
timeLeft = DateDiff("h", now(), newDate)
response.write timeLeft

Men försöker jag ta det ifrån dbn blir det fel.
Just nu har värdet i dbn: 2003-04-26 12:00:00
Och fältet är av typen datetime (mysql)

Medlem sedan mars 20032 667 inlägg
#15

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.

Medlem sedan juni 20015 009 inlägg
#16

hmmm nu kom jag på en sak.... funkar detta om jag kör med mysql? datediff funkar väl inte i mysql så..

Medlem sedan juni 200032 967 inlägg
#17

Qimen skrev:

Och fältet är av typen datetime (mysql)

Det spelar faktiskt ingen roll, utan det är typen i ASP som är det viktiga. ;)

Mvh,

Medlem sedan juni 20015 009 inlägg
#18

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?

Medlem sedan mars 20032 667 inlägg
#19

Qimen skrev:

hmmm nu kom jag på en sak.... funkar detta om jag kör med mysql? datediff funkar väl inte i mysql så..

men du kör inte datediffen direkt i sql-frågan väl?

Medlem sedan juni 200032 967 inlägg
#20

Qimen skrev:

hmmm nu kom jag på en sak.... funkar detta om jag kör med mysql? datediff funkar väl inte i mysql så..

Det här är ju ASP? Det spelar ingen roll att det är MySQL. Det som menas med att DateDiff inte fungerar i MySQL är att det inte är en MySQL-funktion, dvs, du kan inte använda den i SQL-frågorna.

Vad du skriver i ASP ska MySQL ge blanka fan i. ;)

Mvh

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