Avatar billede maron Nybegynder
15. januar 2007 - 15:39 Der er 22 kommentarer og
3 løsninger

Tid og dato i ASP

Nogen der ved hvordan man med ASP forøger datoformatet 15-01-2007 20:00 med 2 dage?
Avatar billede fennec Nybegynder
15. januar 2007 - 15:51 #1
dato = now()
datoPlus2 = dateadd("d",2,dato)
Avatar billede madeindk Nybegynder
15. januar 2007 - 15:52 #2
<%
Session.LCID = 1030
Response.Write DateAdd("d",2,now())
%>
Avatar billede melieha Nybegynder
15. januar 2007 - 15:52 #3
Hejsa, kig på følgende funktion :)
http://www.w3schools.com/vbscript/func_dateadd.asp

I dit tilfælde vil det være:
DateAdd("d",1,"15-01-2007 20:00")
Avatar billede melieha Nybegynder
15. januar 2007 - 15:53 #4
Og det skulle selvfølgelig være 2 og ikke 1 ;) Men kan se at der er andre der også har kastet et svar ;)
Avatar billede fennec Nybegynder
15. januar 2007 - 15:54 #5
Da det er dage, kan du også bruge den korte udgave:

dato = now()
datoPlus2 = dato+2
Avatar billede fennec Nybegynder
15. januar 2007 - 15:56 #6
Du skal evt have tydecasted din dato, hvis den kommer som tekst:
dato = cDate("15-01-2007 20:00")
Avatar billede mathiasovesen Nybegynder
15. januar 2007 - 19:42 #7
Response.Write Now()+2
Avatar billede maron Nybegynder
16. januar 2007 - 11:07 #8
Kan man på samme måde trække 2 datoer fra hianden?

15-01-2007 20:00 - 14-01-2007 20:00 = 1 dag
Avatar billede fennec Nybegynder
16. januar 2007 - 11:50 #9
datediff("d",dato1, dato2)
Avatar billede fennec Nybegynder
16. januar 2007 - 11:56 #10
Bemærk at den kører direkte på datoen. Det vil sige at den siger der er 1 dags forskel på "31-12-2006 23:59:59" og "01-01-2007 00:00:01" selv om der kun er gået 2 sec. Samme med desultat hvis du spørger om året. Der sigen den også, at der er et års forskel.

Vil du have så den ikke skal sige der er gået en dag før kl har parceret det samme tidspunkt, skal du ned og tælle sek i stedet, også selv omregne dem til antal dage.
Avatar billede fennec Nybegynder
16. januar 2007 - 11:57 #11
Den kommentar var da fuld af stave fejl og mangel på komma. Håber I stadig kan forstå den.
Avatar billede maron Nybegynder
16. januar 2007 - 12:28 #12
Kan man så ikke gøre det mere præcis ved at bruge 48 timer i stedet?
Avatar billede fennec Nybegynder
16. januar 2007 - 13:06 #13
Bare gør sådan her. Så kører den på sek presision:

sek = datediff("s","15-01-2007 20:00","14-01-2007 20:00")
dage = fix(sek/86400)
Avatar billede maron Nybegynder
16. januar 2007 - 13:16 #14
Så takker jeg for hjælpen :)
Svar = point
Avatar billede fennec Nybegynder
16. januar 2007 - 13:21 #15
.o) <-- One Eyed Jack
Avatar billede maron Nybegynder
16. januar 2007 - 13:27 #16
:^)
Avatar billede maron Nybegynder
16. januar 2007 - 15:16 #17
Jeg får desværre systax fejl i DateAdd :-(

Function doMysqlDateTime ()
dtDateTime = Now()
dtDateTime = DatePart("YYYY", dtDateTime) & "-" & DatePart("M", dtDateTime) & "-" & DatePart("D", dtDateTime) & " " & DatePart("H", dtDateTime) & ":" & DatePart("N", dtDateTime) & ":" & DatePart("S", dtDateTime)
doMysqlDateTime = dtDateTime
End Function

DateAdd ("d",2,"'" & doMysqlDateTime & "'")
Avatar billede fennec Nybegynder
16. januar 2007 - 15:25 #18
Du skal ikke have ' omkring:
DateAdd ("d",2,doMysqlDateTime)

Desuden kan du ikke bruge dateadd på datoer der ikke er formateret til ASP. Din funktione skulle nærmere være:

Function doMysqlDateTime (byVal dtDateTime )
  dtDateTime = DatePart("YYYY", dtDateTime) & "-" & DatePart("M", dtDateTime) & "-" & DatePart("D", dtDateTime) & " " & DatePart("H", dtDateTime) & ":" & DatePart("N", dtDateTime) & ":" & DatePart("S", dtDateTime)
doMysqlDateTime = dtDateTime
End Function

response.write doMysqlDateTime(dateadd("d",2 now()))
Avatar billede maron Nybegynder
16. januar 2007 - 15:42 #19
fennec >> det giver følgende fejl her:

tegnet')' var ventet
response.write doMysqlDateTime(dateadd("d",2 now()))
--------------------------------------------^
Avatar billede maron Nybegynder
16. januar 2007 - 15:50 #20
Må også hellere lige korrigerer, formatet er: 2007-15-01 20:00
Skrev tidligere:
15-01-2007 20:00
Avatar billede fennec Nybegynder
16. januar 2007 - 16:12 #21
Der manglede et komma efter 2:
response.write doMysqlDateTime(dateadd("d",2,now()))

Du skal være opmærksom på at du skal køre med 2 dato formater. Et til ASP og et til MySQL:

ASP: dd-mm-yyyy
MySQL: yyyy-mm-dd

Dine datoer fra ASP skal altså konverteres, når de skal ind i en sql-sætning. Til det bruger men en konverterings funktion (den du har lavet).

dato = "16-01-2007 16:10"
dato = dateadd("d",2,dato)
sql = "select * from enTabel where dato='"& doMysqlDateTime(dato) &"'"

Du kan via LCID i ASP ændre dens datoformat. Jeg er dog ikke sikker på at yyyy-mm-dd formatet eksistere heri.
Avatar billede maron Nybegynder
16. januar 2007 - 16:29 #22
Ok tak. så vidt så godt, nu kan jeg i hvert fald skrive datetime ind i databasen, men så driller det her altså stadig.
Hvad gør jeg galt her?

Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'doMysqlDateTime'
sek = datediff("s","'" & doMysqlDateTime & "'","" & rs("dato") & "")
Avatar billede fennec Nybegynder
16. januar 2007 - 16:54 #23
Du kan ALDRIG benytte din doMysqlDateTime i ASP's datofunktioner. Som sagt kræver de ASP datoformatet og din funktion konvertere jo til MySQL. Her er det så være at bemærke at datoer fra databasen kommer tilbage i det rigtige format, så der skal ikke laves en mySQLdate2ASPDate funktion.

Du har kun 1 dato i kaldet (doMysqlDateTime er jo et forkert kald). Hvilken dato skal rs("dato")  sammenlignes med?? now() måske?

sek = datediff("s", now(), rs("dato"))
Avatar billede maron Nybegynder
16. januar 2007 - 17:42 #24
Rs("dato") skal sammenlignes med 'doMysqlDateTime'
Det er jo det format jeg har skrevet ind i databasen. rs("dato") skriver 2007-01-15 20:00
Avatar billede maron Nybegynder
16. januar 2007 - 17:55 #25
Bare mig der ikke forstod det, men alt er ok, det virker fint :-)
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