Modérateur PHPfrance |
2575 Messages
21 mars 2007, 15:27
D'abord je n'ai pas une vue claire de l'objectif de ta verif car tu n'a pas expliqué la règle de validation.
Mais, je peux dire que même IE ne peut comprendre le "getDate(...)" que tu utilise comme convertisseur de dates.
Ecrite toute seule "getDate" est interprétée comme une fonction du langage alors que c'est une méthode de la classe Date qui retourne simplement le jour (numérique) de la date.
Pour convertir une valeur de date en un objet date, il faut instancier la classe Date([valeurIniDate]) en lui passant la valeur initiale d'une date.
Exemple:
var ma_date = new Date("03/21/2007") pour créer un objet date ayant comme valeur initiale le 21 mars 2007.
NB. le format de la date doit être mois/jour/année
Voici une reprise de ton code, qui, pour moi, décide si une date saisie, au format mm/jj/aaaa, est refusée quand elle n'est pas supérieure de 5 jours à la date d'aujourd'hui.
Ce qui veut dire que :
si (date_arrivee - date aujourd'hui) <= 5 alors date refusée
Code : Tout sélectionner
<script>
function verif()
{
// Delai en millisecondes
var DelaiMini = 5*(24*60*60)*1000; //variable non utilisée dans ce cas
//-- Recup est init date arrivee
var szDate = document.getElementById('date_arrivee').value;
//Convertir la date saisie en objet Date
var D_Date = new Date(szDate);
//Obtenir la date d'aujourd'hui
var D_Today = new Date();
//Différence
var diff = (D_Date - D_Today)/(24*(60*60)*1000);
//Débug
//alert ("D_Today=" + D_Today + "\nD_Date=" + D_Date + "\nDiff=" + diff);
D_Date.setDate(D_Date.getDate()-4); //je ne sais pas pourquoi tu retires 4 jours de la date saisie
//Débug
//alert ("D_Date=" + D_Date);
//-- Test sur delai
if(diff <=5) //la date saisie doit être > de 5 jours à aujourd'hui
{
alert( "Date incorrect ou delai non respecté");
return false;
}
//else alert ("Ok"); //Débug
}
</script>
<input id="date_arrivee">(mm/jj/aaaa) <input type="button" value="ok" onClick="verif();">
Note: Ce qui est marqué
//Débug sert simplement pour tester le programme. Pour effectuer le test enlever les // au début de la ligne
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène