5

こんにちは、ASP で特定の形式 (yyyymmdd) で表示される日付を取得しようとしています。これは私がこれまでに試したことですが、うまくいきません。どんな助けでも大歓迎です。ありがとう

<tr>
    <td><b>Call Date</b></td>
    <% for i = -6 to 0 %>
        <td align=center>
            <a href="20a.asp?cldate=<% response.write(DateTime.Date()+i.ToString("yyyyMMdd")) %>" target="_blank">X</a>
        </td>
    <% Next %>
</tr>
4

6 に答える 6

8

次の機能を利用できます。

Year(Now) '' Year in 4 digits
Month(Now) '' Month without leading zero
Day(Now) '' Day of the month without leading zero

DateAdd("d", <numofdays>, Now) '' add a number of days to your date

これらの (およびその他の日付関数) 関数の詳細については、こちらをご覧ください。

先行ゼロを追加する必要がある場合:

function addLeadingZero(value)
    addLeadingZero = value
    if value < 10 then
        addLeadingZero = "0" & value
    end if
end function

あなたのケースの例は次のとおりです。

Dim today, myDate

today = Now

for i = -6 to 0
    myDate = DateAdd("d", i, today)

    response.write "<a href=""20a.asp?cldate=" & Year(myDate) & addLeadingZero(Month(myDate)) & addLeadingZero(Day(myDate)) & """ target=""_blank"">X</a>"
next
于 2012-05-14T09:39:37.853 に答える
7

これを掘り下げて申し訳ありませんが、一部の人々の助けになるかもしれません。「If<10 then then add zeros」ロジックではなく、正しいコマンドを使用して常に先行ゼロを追加することがよくあります...

response.write "<a href=""20a.asp?cldate=" & Year(myDate) & Right("0" & Month(myDate), 2) & right("0" & Day(myDate), 2) & """ target=""_blank"">X</a>"

..このように、別の関数は必要なく、1 行で実行できます。その効率性については語れませんが、論理的に思えます。

于 2012-11-20T10:55:36.797 に答える
3

あなたが試すことができます。100% テスト済み!

   <% 
     mm = Month(now())
     dd = Day(now())
     yy = Year(now())
     IF len(mm) = 1 THEN
       mm = "0" & mm
     END IF
     IF len(dd) = 1 THEN
       dd = "0" & dd
     END IF
     response.write(yy & "/" & mm & "/" & dd) 
  %>
于 2014-01-21T08:24:13.763 に答える
2
 <%= DatePart("yyyy", Now) & "/" & DatePart("m", Now) & "/" & DatePart("d", Now) %>

こちらも参照

http://www.w3schools.com/vbscript/vbscript_ref_functions.asp

http://www.mikesdotnetting.com/Article/22/Date-formatting-in-VBScript

ありがとう

ディープ

于 2012-05-14T09:04:51.093 に答える