2012-05-14 3 views
4

Bonjour j'essaye d'obtenir une date dans ASP pour apparaître dans un format particulier (yyyymmdd). C'est ce que j'ai essayé jusqu'ici mais pas de chance. Toute aide est appréciée. MerciDate de mise en page 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 classique n'est pas .NET - vous devez utiliser des objets VBScript et la notation. Aussi - pourquoi essayez-vous d'ajouter un 'i.ToString()' à la date aussi? Pourquoi essayez-vous de formater l'entier? – Oded

Répondre

7

Y ous pouvez utiliser les fonctions suivantes:

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 

En savoir plus sur ces (et d'autres fonctions de date) Fonctions here.

Si vous avez besoin d'ajouter un zéro:

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

Un exemple de votre cas serait:

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

Désolé pour creuser ça, mais il pourrait être utile à certaines personnes . Plutôt que le « Si < 10 puis ajoutez zéro » logique, je l'utilise souvent la bonne commande et ajoute toujours un zéro ...

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

..Ce façon, vous n'avez pas besoin d'une fonction séparée, et cela peut être fait sur une ligne. Je ne peux pas parler pour l'efficacité de celui-ci, mais cela semble logique.

3

ASP obtient la date du système d'exploitation pas de la base de données, une erreur commune, mais il est résolu par l'utilisation:

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

J'espère que cela aide les gens.

+0

Solution la plus simple en effet. Merci;) – yaqoob

1

Vous pouvez essayer. 100% testé!

<% 
    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

Comme je l'ai expliqué dans ma solution, les fonctions Mois et Jour ne fournissent pas de zéro. OP veut les zéros en tête (yyyymmdd). –

+0

Ne vous inquiétez pas Vous pouvez utiliser le code que je viens d'ajouter ci-dessus. C'est 100% de travail. –

+0

Bien sûr, maintenant vous avez changé votre réponse, ça va marcher;). Mon commentaire n'était pas fait pour vous de «corriger» votre réponse, juste pour vous faire savoir que ce n'était pas complètement ce que OP voulait. Il n'y avait rien de mal à votre première réponse. –

1
Mid(date(), 7,4) & "-" & Mid(date(), 4,2) & "-" & Left(date(), 2)