1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
| <html>
<body>
<script language="javascript" type="text/javascript">
function DonnerFocus(id) {
document.getElementById(id).focus();
}
function datecomp(datesaisie,datecompar){
var datedebut=datesaisie;
var datefin=datecompar;
//vérification du format - si la date est saisie je commence le travail, ce si se termine à la fin
if (datedebut!="") {
//véfification du format de date et +
if (!verifdate(datedebut)) {
alert("Attention soit la date de début n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus("datedeb");return false;
}
if (!verifdate(datefin)) {
alert("Attention soit la datede fin n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus("datefin");return false;
}
//création d'un tableau ou je range la date début dans trois cases, si il y a des zero je les supprimme
deb = new Array(3);
if (datedebut.substring(0,1)=="0"){
deb[1]=parseInt(datedebut.substring(1,2));
}
else {
deb[1]=parseInt(datedebut.substring(0,2));
}
if (datedebut.substring(3,4)=="0"){
deb[2]=parseInt(datedebut.substring(4,5));
}
else {
deb[2]=parseInt(datedebut.substring(3,5));
}
deb[3]=parseInt(datedebut.substring(6,10));
//si la datefin contient 1 on vient du formulaire dateresadebut donc on compare avec la date du jour
//dans ce cas on récupère un format de date javascript, on le transforme et on le range dans un tableau
//je ne transforme pas la variable datfin que je réutilise plus loin
if (datefin=='1') {
datef=new Date();
fin = new Array(3);
fin[1]=datef.getDate();
fin[2]=datef.getMonth()+1;
fin[3]=datef.getYear();
var message="la date de réservation ne peut être infèrieur à la date du jour";
}
//dans l'autre cas, on arrive du formulaire par dateresafin et datecompar=dateresadebut
//on récupère la dateresadebut et on la range aussi dans un tableau mais comme la datedébut
else {
fin = new Array(3);
if (datefin.substring(0,1)=="0"){
fin[1]=parseInt(datefin.substring(1,2));
}
else {
fin[1]=parseInt(datefin.substring(0,2));
}
if (datefin.substring(3,4)=="0"){
fin[2]=parseInt(datefin.substring(4,5));
}
else {
fin[2]=parseInt(datefin.substring(3,5));
}
fin[3]=parseInt(datefin.substring(6,10));
var message="la date de fin de réservation ne peut être infèrieure à la date de début";
}
//comparaison des dates
if (deb[3]<fin[3]) {
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]<fin[2])){
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]==fin[2]) && (deb[1]<fin[1])){
alert(message);DonnerFocus(rfocus);return false;
}
}
}
//si la date de réservation dépasse un an on demande une confirmation
if (datefin!='1'){
if ((deb[3]-fin[3])>1){
if (confirm("attention, vous avez réservé pour plus d'un an, confirmer ?")) {
return true;
}
else {
return false;
}
}
}
return true;
}
}
// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
// Le séparateur est défini dans la variable separateur
function verifdate(d) {
var dateaverifier=d
// rangement de la date dans des variables
if (dateaverifier.substring(0,1)=="0"){
var j=parseInt(dateaverifier.substring(1,2));
}
else {
var j=parseInt(dateaverifier.substring(0,2));
}
if (dateaverifier.substring(3,4)=="0"){
var m=parseInt(dateaverifier.substring(4,5));
}
else {
var m=parseInt(dateaverifier.substring(3,5));
}
var a=parseInt(dateaverifier.substring(6,10));
//si la longueur est différent de 10 , problème
if (dateaverifier.length != 10) {
return false;
}
//les caratères / ne sont pas aux endroits attendus
else {
if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
return false;
}
}
//l'année n'est pa un chiffre
if (isNaN(a)) {
return false;
}
//le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
if ((isNaN(m))||(m<1)||(m>12)) {
return false;
}
//test si il s'agit d'une année bissextile pour accepter le 29/02
if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
return false;
}
}
else {
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
return false;
}
}
return true;
}
//cette fonction test si caractères numériques
function IsNumberString(NumStr)
{var regEx=/^[0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}
</script>
<form name="reservation" method="post" action="" onsubmit="return datecomp(document.getElementById('datedeb').value,document.getElementById('datefin').value);">
<p>
Date début :
<input type="text" onclick="ds_sh(this);" title="Date de debut" id="datedeb" name="datedeb" value="<? echo $datedeb;?>" />
</p>
<p>
Date fin : <input type="text" onclick="ds_sh(this);" title="Date de fin" id="datefin" name="datefin" value="<? echo $datefin;?>" />
</p>
<p>
<input type="submit" name="Submit" value="Modifier" title="Enregistrer votre demande"/>
<input type="button" name="redirection" value="Annuler" onClick="javascript:location.replace('liste_prets.php');"/>
</p>
</form>
</body>
</html> |
Partager