30. april 2005 - 22:46Der er
12 kommentarer og 1 løsning
dato plus 30 dage
Hey E
IIS5.0/ASP/IE
Jeg har søgt her på E og fundet flere gode dato scripts, men jeg kan ikke lige greje hvordan jeg skal løse dette.
Jeg gemmer en dato'er i en db-kolonne. Formatet er yy/mm/dd (for nem sortering)
db-data hentes frem, og nu vil jeg så i en function tjekke for om der er gået 30 dage fra den dato der er gemt i db.
dvs. db felt indeholder: 05/04/30 når indholdet er 30 dage længere fremme i tid, så ændres baggrundsfarven. ala... ...denne function sat op til test, hvor dato = db data, og val = kolonnenavnet i db (s_v_nt_egress): Function valEgress(ByVal dato, ByVal val) If dato <> "" Then valEgress = "style=""color:white;background-color:brown;"" " Elseif dato = "" Then valEgress = "style=""color:white;background-color:blue;"" " End if End function%>
så meget styr på dato'ere har jeg desværre ikke:/ men for at koden virker behøves det i hvertfald heller ikke gøres. Lidt ærgelig mener nemlig jeg så det for leden hvordan man gør:(
Taget fra et andet spørgsmål... måske kan det hjælpe dig.
Samtidig skal formatet være mm-dd-yyyy som jeg også har skrevet tidligere. Du kan måske bruge denne funktion til at omformatere dine datoer:
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear End Function
sql = "insert into tabel(enDato) values(#"& ConvertToSqlDate(request.form("dato")) &"#)"
jeg kan ikke konvetere mit dato format til dd/mm/yyyy for så at ligge dem i db'en. Derved mister jeg den nemme mulighed for at kunne sortere på dem, da året derved står til sidst som så fucker up i sorteringen.
Derfor må jeg, for at kunne bruge dit forslag, bytte om på mine data efter de er trukket ud af databasen, fra yy/mm/dd til dd/mm/yyyy ELLER bruge en anden kode end: dato > (DateAdd("D", 29, date))
Men hvordan jeg gør det ene eller det andet ved jeg ikke helt. Jeg må søge lidt rundt og prøve mig frem, men at ændre mit datoformat inden jeg gemmer det, er ikke en option uden også at løse sorteringsproblemet der følger i kølevandet...
Dim arr, alternativeDate2 Function valEgress(ByVal dato) arr = split(Date, "-") alternativeDate2 = Right(arr(2),2) & "/" & arr(1) & "/" & arr(0) If dato > (DateAdd("D", 29, alternativeDate2)) Then valEgress = "style=""color:white;background-color:brown;"" " Elseif dato < (DateAdd("D", 29, alternativeDate2)) Then valEgress = "style=""color:white;background-color:blue;"" " Elseif dato = "" Then valEgress = "" End if End function
hvor dato = : 05/05/03 el. 05/03/17 el. 05/04/28 mf. ...
Denne funktion mener jeg gerne skulle give udslag i andet end den første valEgress:
Dim varDato, varD1, varD2, varD3 Function valEgress(ByVal varD3) varDato = "06/01/04" 'bruges som test If varDato <> "" Then varD1 = split(varDato, "/") varD2 = (varD1(2) & "-" & varD1(1) & "-20" & varD1(0)) If varD2 > (DateAdd("D", 29, date)) Then valEgress = "title="&varD2&"?"&date&" style=""color:white;background-color:blue;"" " Elseif varD2 < (DateAdd("D", 29, date)) Then valEgress = "style=""color:white;background-color:black;"" " Elseif varD2 = "" Then valEgress = "" End if End if End function
men jeg kan kun få den til at reagere som om varD2 ALTID er > end (DateAdd("D", 29, date))
Har løst det. J skulle bruge datediff istedet for dateadd:
Dim varDato, varD1, varD2, varD3 Function valEgress(ByVal varDato) ' varDato = "05/04/19" 'bruges som test If varDato <> "" Then varD1 = split(varDato, "/") varD2 = varD1(2) & "-" & varD1(1) & "-20" & varD1(0) If Datediff("D", varD2, date) > 29 Then valEgress = "title="&varD2&"?"&date&" style=""color:white;background-color:blue;"" " Elseif Datediff("D", varD2, date) < 29 Then valEgress = "style=""color:white;background-color:black;"" " Elseif varD2 = "" Then valEgress = "" End if End if End function
points til mig ;D
Synes godt om
Ny brugerNybegynder
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.