webForumDet fria alternativet

Fel format på datumet?

ASP

19 svar · 522 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Försöker spara in dessa datum i databasen den första variablen kommer in men inte dom andra två kolumnerna är av typen DateTime.

eventDate = request("Date_Year") + "-" + Request.Form("Date_Month") + "-" +  Request.Form("Date_Day") + " " + Request.Form("Time_Hour") + ":" + request("Time_Minute") + ":00 "
varaktighet = FormatDateTime(DateAdd("n", +Request.Form("varaktighet"), eventDate), 4)
paminnelse = FormatDateTime(DateAdd("n", -Request.Form("Date_Month"), eventDate), 4)

Blir 0000-00-00 00:00:00 i databasen

Medlem sedan juni 200032 967 inlägg
#2
  1. Testutskrifter! Skriv ut vad variablerna innehåller!
  2. Du ska inte använda + för att konkatenera. Använd &.
Medlem sedan nov. 20031 018 inlägg
#3

evendate får värdet 2004-10-27 19:30:00 och dom andra två blir värdet 0000-00-00 00:00:00

Medlem sedan juni 200032 967 inlägg
#4

Du måste se till att du använder rätt subtyper. CDate() på datum, CInt() / CLng() på heltal. Typar man inte går saker och ting åt pipsvängen.

mvh

Medlem sedan nov. 20031 018 inlägg
#5

Nu förstår jag inte hur du menar igen :stud

Medlem sedan nov. 20031 018 inlägg
#6

Testade så här:

eventDate = request("Date_Year") & "-" & Request.Form("Date_Month") & "-" &  Request.Form("Date_Day") & " " & Request.Form("Time_Hour") & ":" & request("Time_Minute") & ":00 "
eventDate = CDate(eventDate)
varaktighet = FormatDateTime(DateAdd("n", +varaktighet, eventDate), 4)
paminnelse = FormatDateTime(DateAdd("n", -Request.Form("Date_Month"), eventDate), 4)

Response.Write(eventDate &"<br>" & _
varaktighet &"<br>" & _
paminnelse)

Då blev dessa värden utskrivna:
2004-10-27 20:40:00
20:55
20:30

Medlem sedan juni 2002256 inlägg
#7

Vad har varaktighet för värde innan du du tilldelar den värde i din kod?

Medlem sedan nov. 20031 018 inlägg
#8

15 och paminnelse 10

Medlem sedan juni 200032 967 inlägg
#9

Vad bra! Då innehåller variablerna precis det de ska nu. (y)

Medlem sedan juni 2002256 inlägg
#10

Inte för att jag ser att du använder paminnelse's värde (10) till något, men det borde ju funka nu ;P

Medlem sedan nov. 20031 018 inlägg
#11

Hur gör jag för att variablen varaktighet ska bli 2004-10-27 20:55:00?

Medlem sedan juni 2002256 inlägg
#12

Testa med fler variabler. ASP gillar kanske inte att du blandar typerna på det där sättet.

<%
eventDate = request("Date_Year") & "-" & Request.Form("Date_Month") & "-" &  Request.Form("Date_Day") & " " & Request.Form("Time_Hour") & ":" & request("Time_Minute") & ":00 "
eventDate = CDate(eventDate)

Dim dVaraktighet,dPaminnelse
dVaraktighet = FormatDateTime(DateAdd("n", +CInt(varaktighet), eventDate), 4)
dPaminnelse = FormatDateTime(DateAdd("n", -CInt(Request.Form("Date_Month")), eventDate), 4)

Response.Write(eventDate &"<br>" & _
dVaraktighet &"<br>" & _
dPaminnelse)
%>
Medlem sedan nov. 20031 018 inlägg
#13

Får fortfarande dessa värden:
2004-10-27 20:40:00
20:55
20:30

Medlem sedan juni 2002256 inlägg
#14

Ehum... vilka värden VILL du få?

Medlem sedan juni 200032 967 inlägg
#15

Jag förstår inte varför du använder FormatDateTime på de två värdena du skapar med DateAdd.

Medlem sedan nov. 20031 018 inlägg
#16

Det är mycket möjligt att FormatDateTime har inte hållt på med tid så mycket innan.
Det jag vill är att ta tiden man får fram ur eventDate och lägga till/ta bort tiden som man får ur dom andra två formulären.

Medlem sedan juni 2002256 inlägg
#17

Och det gör den inte nu?

' Lagrar tiden efter att ha adderat med varaktighet (10) minuter
dVaraktighet = FormatDateTime(DateAdd("n", +CInt(varaktighet), eventDate), 4)

' Lagrar tiden efter att ha subtraherat med POST-parametern Date_Month (månad (?)) minuter
dPaminnelse = FormatDateTime(DateAdd("n", -CInt(Request.Form("Date_Month")), eventDate), 4)

Jag tycker koden agerar korrekt.

Medlem sedan nov. 20031 018 inlägg
#18

Om jag gör så här så fungerar det men det borde väl finnas bättre sätt?

eventDate = request("Date_Year") & "-" & Request.Form("Date_Month") & "-" &  Request.Form("Date_Day") & " "& Request.Form("Time_Hour") & ":" & request("Time_Minute") & ":00 "
eventDate = CDate(eventDate)
eventDate2 = request("Date_Year") & "-" & Request.Form("Date_Month") & "-" &  Request.Form("Date_Day") & " "

Dim dVaraktighet,dPaminnelse
' Lagrar tiden efter att ha adderat med varaktighet (10) minuter
dVaraktighet = eventDate2 & FormatDateTime(DateAdd("n", +CInt(varaktighet), eventDate), 4)

' Lagrar tiden efter att ha subtraherat med POST-parametern Date_Month (månad (?)) minuter
dPaminnelse = eventDate2 & FormatDateTime(DateAdd("n", -CInt(paminnelse), eventDate), 4)
Medlem sedan juni 2002256 inlägg
#19

Ehum... alltså

<%

eventDate = request("Date_Year") & "-" & Request.Form("Date_Month") & "-" &  Request.Form("Date_Day") & " "& Request.Form("Time_Hour") & ":" & request("Time_Minute") & ":00 "
eventDate = CDate(eventDate)

Dim dVaraktighet,dPaminnelse
dVaraktighet = DateAdd("n", +CInt(varaktighet), eventDate)
dPaminnelse = DateAdd("n", -CInt(paminnelse), eventDate)

%>

/r
Råkade posta koden i min iver, innan jag hann ändra den. Denna kör jag och den fungerar superb.

Medlem sedan juni 200032 967 inlägg
#20

Du har inte provat att ta bort FormatDateTime, som jag tipsade om? Då borde du ju få datum och tid i rätt subtyp...

265 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)