- · Niveau : INTERMÉDIAIRE
- · Compatibilité : Serveur NT IIS 4
- · Voir l’exemple
- · Fichier à télécharger
Nouvelle version corrigée et amiliorée.
Version 2.0 (25 septembre 2001)
Vous devez savoir à quel point la saisie d’une date peut-être problématique lorsqu’on travail avec une base de données. Inverser le mois et le jour ou l’utilisation de caractères différents peut invalider une requête, voir même retourner une erreur. Manipulation des dates, même entre « # » ne fonctionnera pas si la date n’est pas valide.
Pour simplifier la vie des internautes, j’ai créé un petit script qui empêche les erreurs de saisie d’une date en forçant le visiteur à entrer le jour, le mois puis l’année séparément à l’aide de menus déroulants. Ce petit script offre de choisir la date qui sera affichée par défaut (ex.: 2 novembre 2000) , les années possibles (ex.: 2000 à 2020) et le nom des variables de saisie retournées par les menus déroulants, soit le jour, le mois et l’année.
À l’origine ce script ne fessait aucune validation des jours selon le mois (30 ou 31) et des années bissextiles. Tout simplement parce que seul le Javascript permet de modifier les menus déroulants en temps réel. Malgré l’indication de cette faiblesse nécessaire, un Webmestre ne tarda guère à me le faire remarquer. Bon, c’est ça les Trucsweb, en premier lieu, l’aide aux Webmestres, alors 24 heures plus tard, voilà le code complet, Javascript inclus.
Pour ceux qui désire traiter et valider le formulaire à la réception des données par une page ASP (dans l’alternative de recevoir la visite d’un navigateur incompatible Javascript.), une version sans Javascript est encore disponible.
En prime, dans le fichier « include », vous obtiendrez aussi quelques fonctions pratiques.
- Voir le script en action
- Télécharger le fichier "include"
- Télécharger le fichier "include" (sans le javascript)
UTILISATION
Le fichier est un fichier " include " que vous devez déclarer en haut de votre
document.
SYNTAXE
Call
Menu_Date( DateParDefaut , AnneeDebut
, AnneeFin , VariableJour, VariableMois , VariableAnnee)
DateParDefaut = La date qui sera sélectionnée par
défaut dans les menus déroulant. (mm/jj/aa)
AnneeDebut = La première année du menu déroulant
des années à choisir. (2000)
AnneeFin = La dernière année du menu déroulant des
années à choisir.
VariableJour = Le nom de la variable ou de l’objet
du formulaire qui retournera le numéro du jour.
VariableMois = Le nom de la variable ou de l’objet
du formulaire qui retournera le numéro du mois.
VariableAnnee = Le nom de la variable ou de l’objet
du formulaire qui retournera l’année.
EXEMPLE
<!-Copier en haut de votre document à -->
<!--#include file="CheminDacces/date.asp"-->
ou
<!--#include virtual="/CheminDacces/date.asp"-->
<!-Copier à l’endroit où vous désirez voir la saisie
de la date à -->
<% Call Menu_Date(Now(),2000,2020,"Jour1","Mois1","Annee1")%>
Note : Now() est la date du jour en ASP.
UTILISER LES VARIABLES RETOURNÉ PAR LA FONCTION
Une fois la saisie effectuée, pour être compatible avec votre base de données
(en format standard anglais), vous devez convertir vos trois données en une date.
Si le format de date de votre base est différent, la construction de la date Valide
peut être différente mais vous avez tous les éléments pour le faire.
DateValide
= Request.Form("Mois1") & "/"
& Request.Form("Jour1") & "/"
& Request.Form("Annee1")
DÉTERMINER SI UNE DATE EST ENTRE DEUX AUTRES DATES
Cette fonction retourne un code qui indique si une date est, entre, avant ou après,
une période entre entre deux dates.
UTILISATION
Le fichier est un fichier " include " que vous devez déclarer en haut de votre
document.
SYNTAXE
Date_inc( nDebut, nFin, nDate
)
nDebut = Date du début de la période "#mm/jj/aa#
"
nFin = Date de la fin de la période "#mm/jj/aa# "
nDate = Date à valider "#mm/jj/aa# ou Now() "
EXEMPLE
<!-Copier en haut de votre document à -->
<!--#include file="CheminDacces/date.asp"-->
<!-Copier à l’endroit où vous désirez voir la date affichée à -->
<% if Date_inc( #8/4/99#, #8/21/99#, Now() ) =
1 then %>
Dans la période
<%
end if %>
RETOUR
- si la date est incluse dans l’interval
- si la date est avant l’interval
- si la date est après l’interval
AFFICHER LA DATE EN FRANÇAIS
Cette fonction permet de convertir une date en format standard anglais (mm/jj/aa/)
en format texte français pour ensuite l’afficher.
UTILISATION
Le fichier est un fichier " include " que vous devez déclarer en haut de votre
document.
SYNTAXE
Date_fr(UneDateValide)
UneDateValide = La date en format " mm/jj/aa " qui
sera affiché en format texte.
EXEMPLE
<!-Copier en haut de votre document à -->
<!--#include file="CheminDacces/date.asp"-->
<!-Copier à l’endroit où vous désirez voir la date affichée à -->
<%=Date_fr(Now())%>
AFFICHER LA DATE EN FRANÇAIS (long)
Cette fonction permet de convertir une date en format standard anglais (mm/jj/aa/)
en format texte français long (avec le nom du jour de la semaine) pour ensuite
l’afficher.
UTILISATION
Le fichier est un fichier " include " que vous devez déclarer en haut de votre
document.
SYNTAXE
Date_fr_long(UneDateValide)
UneDateValide = La date en format " mm/jj/aa " qui
sera affiché en format texte.
EXEMPLE
<!-Copier en haut de votre document à -->
<!--#include file="CheminDacces/date.asp"-->
<!-Copier à l’endroit où vous désirez voir la date affichée à -->
<%=Date_fr_long(Now())%>