ASP格式化日期

use*_*187 4 asp-classic

您好,我正在尝试在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>
Run Code Online (Sandbox Code Playgroud)

Gui*_*ier 7

您可以使用以下功能:

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
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关这些(和其他日期函数)函数的更多信息.

如果您需要添加前导零:

function addLeadingZero(value)
    addLeadingZero = value
    if value < 10 then
        addLeadingZero = "0" & value
    end if
end function
Run Code Online (Sandbox Code Playgroud)

你的案例就是:

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
Run Code Online (Sandbox Code Playgroud)


小智 7

很抱歉要深入了解这一点,但对某些人来说可能会有所帮助.而不是"If <10然后添加前导零"逻辑,我经常使用正确的命令并始终添加前导零...

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

..这样,你不需要一个单独的功能,它可以在一行上完成.我不能说它的效率,但它似乎合乎逻辑.