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>
If och Else i datum
9 svar · 249 visningar · startad av Bj
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
...
------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige
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
%>
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
------------------
Kom hem till mig...
Hua, nu är jag inte riktigt med hur Du menar?
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
------------------
Kom hem till mig...
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?
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
------------------
Kom hem till mig...
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....
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>