har ett litet problem. Vill räkna ut ålder efter ett datum som finns i databasen (MySQL, DATE), alltså i formatet 1983-07-17. Nu vill jag få fram hur gammal den är (mig själv i detta fall). Så här har jag gjort, men då får jag resultatet 20 och jag fyllder det först nästa vecka.
datum = RS("age")
alder = datediff("yyyy",datum, now())
response.write alder
Någon som har förslag på hur man kan göra för att den inte ska avrunda uppåt till 20 utan skriva det lägre talet ända tills det slagit om till det högre. Har provat med -1 efter och då blir det rätt för mig, men fel för många som fyllt år det föregåede halvåret
:birp trevlig lördagkväll :)
PeeerMedlem sedan mars 20025 907 inlägg Fungerar sådär
Provade och fick det att fungera ganska bra - med ett undantag.
2001-07-05 resulterade i 1 år - vilket egentligen borde vara två. Varför? Finns problemet på många ställen?
edit:
verkar vara decimaler som spökar. Använder /365.2375
Får rätt på 1983-07-05 (20 år), men fel på 2001-07-05 (1 år)
VARFÖR???
PeeerMedlem sedan mars 20025 907 inlägg Problemet förekommer nog bara när månad och dag på datum är samma som dagens månad och dag. Gjorde en liten workaround som verkar funka. Möjligt att det är någon bugg någonstans.
datumet = "1985-12-25"
age = Fix(DateDiff("d",datumet, Date)/365.2375)
if datepart("m",date()) = datepart("m",datumet) and datepart("d",date()) = datepart("d",datumet) and not
datepart("yyyy",datumet) = datepart("yyyy",date()) Then age = age +1
Response.write age
Tack Peeer, men jag får detta fel när jag provar din kod
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/forum/detail.asp, line 61, column 104
if datepart("m",date()) = datepart("m",datumet) and datepart("d",date()) = datepart("d",datumet) and not
felet pekar på and not
PeeerMedlem sedan mars 20025 907 inlägg Attans... missade ju halva kodraden :D
datumet = "1985-12-25"
age = Fix(DateDiff("d",datumet, Date)/365.2375)
if datepart("m",date()) = datepart("m",datumet) and datepart("d",date()) = datepart("d",datumet) and not datepart("yyyy",datumet) = datepart("yyyy",date()) Then age = age +1
Response.write age