2012-05-14 3 views
4

Привет, я пытаюсь получить дату в ASP, чтобы отображаться в определенном формате (yyyymmdd). Это то, что я пробовал до сих пор, но не повезло. Любая помощь приветствуется. БлагодаряДата форматирования ASP

<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> 
+1

Классический ASP не является .NET - вам нужно использовать объекты VBScript и обозначения. Также - почему вы пытаетесь добавить «i.ToString()» к дате? Почему вы пытаетесь отформатировать целое число? – Oded

ответ

7

Y ожно использовать следующие функции:

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 

Подробнее об этих (и других функциях даты) функциях here.

Если вам нужно добавить ведущий ноль:

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 
7

К сожалению выкопать это, но это может оказаться полезным для некоторых людей , Вместо того, чтобы «если < 10 затем добавить ведущий ноль» логику, я часто использую правильную команду и всегда добавить ведущий ноль ...

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

..выполняется образом, вам не нужен отдельная функция, и это можно сделать на одной линии. Я не могу говорить об эффективности, но это кажется логичным.

3

ASP получает дату от ОС не из базы данных, общей ошибки, но она решается путем использования:

<% 
' Date dd/mm/yyyy 
Session.lcid=2057 '= UK English 
%> 

Я надеюсь, что это помогает людям.

+0

Простейшее решение. Спасибо;) – yaqoob

1

Вы можете попробовать. 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) 
    %> 
+0

Как я объяснил в своем решении, функции месяца и дня не дают начального нуля. OP хочет начальные нули (yyyymmdd). –

+0

Не беспокойтесь. Вы можете использовать код, который я только что добавил выше. Это 100% работает. –

+0

Конечно, теперь вы изменили свой ответ, он будет работать;). Мой комментарий не был предназначен для вас, чтобы «исправить» ваш ответ, просто чтобы вы знали, что это не совсем то, что хотел OP. С вашим первым ответом ничего не случилось. –

1
Mid(date(), 7,4) & "-" & Mid(date(), 4,2) & "-" & Left(date(), 2) 
Смежные вопросы