[ASP] Forcer une variable en format date?

Forcer une variable en format date? [ASP] - ASP - Programmation

Marsh Posté le 22-02-2003 à 14:51:03    

Je suis en train de reprendre un forum à installer chez moi (ABB pour ceux qui connaissent).
J'ai un petit problème. En fait, dans le code, on récupère une variable dans un cookie, qui est la dernière date de connexion. Par la suite, on va afficher cette date avec l'expression:
<%= day(var) & "/" & month(var) etc.
c'est à ce moment là qu'il me fait une erreur, et je suppose que l'asp considère que la variable var est une string et non une date.
peux-tu donc forcer une variable et indiquer à l'asp que c'est une date et non une string?

Reply

Marsh Posté le 22-02-2003 à 14:51:03   

Reply

Marsh Posté le 23-02-2003 à 09:58:28    

Ca serait cool que je puisse régler ce problème aujourd'hui, donc je me permet un tit coup de up  :bounce:

Reply

Marsh Posté le 24-02-2003 à 08:05:11    

petit complément d'info, j'ai essayé de betement afficher le jour avec la fonction dim, le mois et l'année, mais ca bug par la suite car on fait également un DateDiff sur cette variable.
Donc je recherche tjs activement de l'aide  :hello:

Reply

Marsh Posté le 24-02-2003 à 10:33:27    

Si le string que tu veux récupérer est dans un format reconnaissable, il suffit de faire un
 
DateValue(string), qui transforme une chaîne en variable de type date.
 
Ca marche avec ce genre de chaînes :
 
30/12/1991  
30/12/91
30 décembre 1991
 
Donc DateValue("var" ) avant tes traitements, et l'affaire devrait être dans le sac.
 
EDIT : CDate (date) est peut-être plus approprié, en fait.  
Je vois pas trop la différence dans la doc VBS...
 
Autre idée : stocker les valeurs de date directement dans un format date, plutôt que les stocker en strings et les retransformer en date pour les utiliser.  
 
Ca doit pouvoir se faire en rajoutant un # au début et à la fin de la variable au moment de son "introduction dans le biscuit".


Message édité par deliriumtremens le 24-02-2003 à 10:44:10
Reply

Marsh Posté le 24-02-2003 à 10:38:19    

génial ca doit etre ca! je testerai ce soir et je redonnerai des nouvelles si c'était bien le problème, merci beaucoup http://www.mangaclub.ch/smileys/gif/29.gif

Reply

Marsh Posté le 24-02-2003 à 18:31:50    

j'ai testé tout ca mais rien ne fonctionne, je comprends pas vraiment.
 
j'ai essayé cette syntaxe (entre autre)
visdt=DateValue(Request.Cookies("abb" )("date" ))
 
et il me fait l'erreur:
Type mismatch: 'DateValue'  
 
il me fait la meme erreur pour CDate, le problème est-il du coté du cookie? Je ne comprends pas car si j'affiche le cookie, il me mets la date en jj/mm/aaaa

Reply

Marsh Posté le 25-02-2003 à 08:37:35    

Urd-sama a écrit :

j'ai testé tout ca mais rien ne fonctionne, je comprends pas vraiment.
 
j'ai essayé cette syntaxe (entre autre)
visdt=DateValue(Request.Cookies("abb" )("date" ))
 
et il me fait l'erreur:
Type mismatch: 'DateValue'  
 
il me fait la meme erreur pour CDate, le problème est-il du coté du cookie? Je ne comprends pas car si j'affiche le cookie, il me mets la date en jj/mm/aaaa


 
Ca te donne quoi un tout con :
 
visdt=Request.Cookies("abb" )("date" )
Response.write visdt
 
pour visualiser la chose ?
 

Reply

Marsh Posté le 25-02-2003 à 08:42:28    

response.write "." & visdt & "."
donne
.24.02.2003.

Reply

Marsh Posté le 25-02-2003 à 09:42:13    

Alors c'est normal que CDate et/ou DateValue ne fonctionnent pas !
 
Il faut que les séparateurs soient reconnus comme séparateurs de dates, et les points ne le sont pas.  
 
cf exemples que j'ai donné plus haut.
 
Dernière (?) question : comment ta date s'écrit-elle dans le cookie ? (syntaxe du Response.cookie wanted). On doit pouvoir faire quelque chose là-dessus.
 
Sinon, tu fais un Replace des points à l'intérieur de la date  
(remplace les . par des /) avant de le traiter comme date, et ça devrait jouer !
 
Mais en l'introduisant proprement ça me paraît plus simple.
 
PS : pourquoi tu fais Response.write avec des "." au début et à la fin ? Ca rend pas les choses claires !  

Reply

Marsh Posté le 25-02-2003 à 09:51:47    

ah la vache, j'avais pas pensé à regarder de ce coté-là!
J'ai fais un simple replace, et le tour est joué, vraiment merci beaucoup.
pour les points, c'est une habitude que j'avais pris à mettre un caractère spécial en début et bout de chaine car parfois y'a des variantes avec les espaces

Reply

Marsh Posté le 25-02-2003 à 09:51:47   

Reply

Marsh Posté le 25-02-2003 à 09:54:28    

En fait, pour essai, essaie de faire ça
 
visdt=Request.Cookies("abb" )("date" )  
visdt=Replace(visdt, ".", " " )
visdt=DateValue(visdt)
 
et là tu devrais avoir une date en format utilisable (enfin)
 
EDIT : content que tu aies trouvé. Si jamais, l'espace marche aussi bien que le /


Message édité par deliriumtremens le 25-02-2003 à 09:55:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed