Oprettet man. d. 06. april 2009 kl. 11:32:27

totalpc
totalpc (4.948 point. Point ude: 230)

Hvordan tjekker jeg for korrekt format i dato fejl

Hej
Mine brugere skal indtaste en dato i formatet dd-mm-aaaa på mine hjemmeside. Hvordan tjekker jeg for at de skriver datoen i rigtigt format inden jeg smider det i db?

24-12-2009 OK
12-24-2009 Ikke ok
24-12-09 Ikke ok
24/12/2009 Ikke ok
osv...
Det er kun øverste format der er godkendt!

Skrevet tir. d. 07. april 2009 kl. 22:12:59| #1

eagleeye
eagleeye (330.580 point)
www.eagleeye.dk
Du kan lave en funktion som denne:

function CheckDate(strIn)
' function to validate date input
    dim objRE
    set objRE = New RegExp
    objRE.Pattern = "(0[1-9]|[12][0-9]|3[01])
  • (0[1-9]|1[012])[-](19|20)\d\d"
    objRE.Global = True
    CheckDate = objRE.test(strIn)
    set objRE = nothing
end function



Den bør måske kombineres med isData funtionen som findes i ASP.


dato= "24-12-2009"
if CheckDate(dato) AND isDate(dato) then
  ' Dato er Ok
else
  ' Dato er forkert
end if




Men du kan også anvendte year, month og day funktionerne til at formatere datoen så du ved den er 100% korrret formateret, samt du kan tillade folk benytter - eller / som skille tegn:

dato= "24-12-2009"
datoSQL = Day(dato) "-" & Month(dato) & "-" & Year(dato)

Skrevet ons. d. 08. april 2009 kl. 10:13:25| #2

totalpc
totalpc (4.948 point)
Hej
Tak for svaret. Første del forstår jeg, selvom jeg ikke forstår selve tjekket i funktion :)
Men den med year, month og day funktionen forstår jeg ikke helt.
Der kan jeg godt se at jeg kan formatere datoen selv, men hvor ved den fra at det første tal er dato og ikke måned fx?

Skrevet tor. d. 09. april 2009 kl. 17:49:41| #3

eagleeye
eagleeye (330.580 point)
www.eagleeye.dk
Selve funktionen bruger regular expression til at tjekke at strengen du får inde holder DD-MM-YYYY hvor DD skal være imellem 01 og 31, MM imellem 01 og 12, smat YYYY hvor YYYY skal være større end 1900 men det behøver vel ikke være en begrnsning i dit tilfæde??? 

function CheckDate(strIn)
' function to validate date input
    dim objRE
    set objRE = New RegExp
    objRE.Pattern = "(0[1-9]|[12][0-9]|3[01])
  • (0[1-9]|1[012])[-]\d\d\d\d"
    objRE.Global = True
    CheckDate = objRE.test(strIn)
    set objRE = nothing
end function


sleve funktion tjekke ikke på dato er gyldig eks: 31-02-2000. Det kan isDate bruges til.


Dato/tids funktionerne i ASP bruger serveres datao format så hvis serveren køre DK dato format vil den tolke datoen som DD-MM-YYYY.

Jeg har engang skrevet denne lille guide http://www.eksperten.dk/ (...) angåede dato problem imellem ASP side og Access når man bruger en SQL sætning. Jeg ved ikke om den hjælper dig lidt mere.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

ASP: formular udtræk med mulighed for at rette

Oprettet den 21. maj 2012 kl. 15.09
quarkb giver 200 point for svar | Giv et svar »

Sorter biblioteker efter dato i ASP

Oprettet den 17. maj 2012 kl. 16.52
4ks giver 60 point for svar | Giv et svar »

Simpel login-funktion (web) - behov for flere logins/brugere

Oprettet den 15. maj 2012 kl. 09.54
madx giver 75 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger