webForumDet fria alternativet
Logga in / Bli medlem

If och Else i datum

ASP

9 svar · 252 visningar · startad av Bj

Medlem sedan sep. 2000314 inlägg
Frågan#1

Skall bara kunna skriva siffran på datumet så skall år-månad-dag visas.
Men varför funkar inte denna If-sats då jag vill att den aut. skall visa oktober om man idag skulle skriva t.ex 20.
-----------------------------------
RESULTAT.ASP
<BODY>
<FORM ACTION = "result.asp" METHOD = "POST">
<INPUT NAME = "day" size="20">
<input type="submit" value="send">
</FORM>
</BODY>
<%
MyField = Request.Form("day")
MyYear = Year(Date)
MyMonth = Month(Date)
CurrentDay=Day(date)
If CurrentDay > MyField then
MyMonth=Month(date)+1
Else
MyMonth=Month(date)
End If
MyNewDate =""&Myyear&"-"&MyMonth&"-"&MyField&""
response.write MyNewDate
%>
</BODY>

Medlem sedan dec. 1999707 inlägg
#2

Anledning till att det inte fungerar är att värdet du får ut from Request.Form("day") är i strängformat och värdet som Day(date) returnerar är i numeriskt format. If-raden på din kod skall se ut som följer:

...
If CurrentDay > CInt(MyField) then
...

Medlem sedan sep. 2000314 inlägg
#3

Tack så mycket. Det gjorde gott.
Nu ett nytt problem...
Har lagt på lite för att veckans dag skall skrivas ut, men om jag skriver "28" i fältet så visas "lördag 28/9 2000. Hmm Det är ju TORSDAG den 28..
Om jag skriver "10" så verkar det funka. Då skriver den Tisdag 10/10 2000.
Vad gör jag för fel nu?
--------------------
RESULT2.ASP
<BODY>
<FORM ACTION = "result2.asp" METHOD = "POST">
<INPUT NAME = "day" size="20">
<input type="submit" value="send">
</FORM>
</BODY>

<%
MyField = Request.Form("day")
MyYear = Year(Date)
MyMonth = Month(Date)
CurrentDay=Day(date)

If CurrentDay > CInt(MyField) then
MyMonth=Month(date)+1
Else
MyMonth=Month(date)
End If

DayName=weekdayname(weekday(MyField))
MyNewDate =""&DayName&" "&MyField&"/"&MyMonth&" "&MyYear&""
response.write MyNewDate
%>

Medlem sedan dec. 19998 577 inlägg
#4

Stoppar du bara in dagen i funktionen weekdayname så kommer den att välja ett eget datum. Rätt dag men säkert fel år och månad... Så stoppa in hela datumet så blir det säkert rätt...

Mvh, Vide

Medlem sedan sep. 2000314 inlägg
#5

Hua, nu är jag inte riktigt med hur Du menar?

Medlem sedan dec. 19998 577 inlägg
#6

Alltså, som det ser ut nu så, om du skickar värdet 20 i formuläret, så kommer det att se ut såhär:

DayName=weekdayname(weekday(20))

Funktionen weekday vet ju inte vilken månad eller vilket år du menar, alltså måste du skicka med dessa också...

Mvh, Vide

Medlem sedan sep. 2000314 inlägg
#7

Hmm men om jag skickar iväg 20 så stämmer det. Den returnerar "fredag 20/10 2000".
Detta är kanske tur och träff?

För som sagt: Skickar jag iväg 28 så skriver den "lördag 20/9 2000. Det borde ju varit Torsdag 28/9 2000.

Menar du att man måste skriva hela datumet i fältet eller skall jag på ngt sätt ändra i skriptet?

Medlem sedan dec. 19998 577 inlägg
#8

Ja, du måste skicka med dag, månad och år... Så att du får någonting sånthär:

dtmVar = Cdate(Year(date) & "-" & Month(date) & "-" & MyField)

weekdayname(weekday(dtmVar))

Mvh, Vide

Medlem sedan sep. 2000314 inlägg
#9

Urk, jag som trodde jag fått ihop det... jag har provat flera olika sätt men har nog inte kunskaperna att fatta hur Du menar Vide....

Medlem sedan sep. 2000314 inlägg
#10

Nu jäklar... verkar det funka.
Tack för all hjälp. Om ni ser ngt speciellt fel el. ngn bugg, säg gärna till....

<BODY>
<FORM ACTION = "result.asp" METHOD = "POST">
<INPUT NAME = "day" size="20">
<input type="submit" value="send">
</FORM>

<%
dtDay=request.form("day")
CurrentDay=Day(date)

If CurrentDay > CInt(dtDay) then
MyMonth=Month(date)+1
Else
MyMonth=Month(date)
End If

EnMonthName=MonthName(MyMonth)
MyYear=Year(date)

dtmVar = Cdate(Year(date) & "-" & MyMonth & "-" & dtDay)
DayName=weekdayname(weekday(dtmVar))

MyNewDate=DayName & " " & dtDay & " " & EnMonthName
response.write MyNewDate
%>
</BODY>

266 ms totalt · 4 externa anrop · v20260731065814-full.05830320
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)