Det är väl inte så konstigt, eftersom 30 februari aldrig infaller. Inte ens under skottår, då det är den 29:e.
Kontrollera datumet i inmatningen istället.
7 svar · 198 visningar · startad av Asa
Behöver en funktion som gör om ex 1980-01-25 till hur många år man är precis. Och som även ska kolla om ett datum är felaktigt som ex 1980-02-30 är och då skriva ut att datumet är felaktigt eller så att man typ blir 0 år.
Har denna kod nu men om man skriver att man är född 30 feb så funkar den ej:
<%
birthday = "1980-01-25"
Function Birth(str)
res = DateDiff("yyyy", str, date())
If Month(date) =< Month(str) AND Day(date) < Day(str) Then res=res-1
Birth = res
End Function
Response.Write Birth(birthday)%>
Är när jag gör om datumet på detta sätt:
birthday = CStr(RS("ar") & "-" & RS("man")& "-" & RS("dag"))
Det är väl inte så konstigt, eftersom 30 februari aldrig infaller. Inte ens under skottår, då det är den 29:e.
Kontrollera datumet i inmatningen istället.
Asa skrev:
Men det finns ju idioter som väljer att de är född då!
Hmm, undra varför jag har Cstr med...
Ja, exakt.
Det var därför jag föreslog att kolla datumet med t.ex. JavaScript eller (ännu bättre) med VBScript/ASP. Får du inte inkonsistens i databasen vid inmatning behöver du iregel inte oroa dig. Det viktigaste är att se till att det inte blir det.
Okej, får skriva ett inlägg som kollar det i javascriptforumet!
Gör så. :)
Vänta lite nu, hur morgondum är jag på en skala då? :D
Det finns ju en utmärkt funktion i VBScript som heter isDate() som är skapad för ändamålet.
<%
strDate = CDate("2003-02-30")
If isDate(strDate) Then
response.write "Korrekt datum."
Else
response.write "Felaktigt datum."
End If
%>
Okej, ska testa den!