Comparer une date avec la date du jour !
Posté : 20 janv. 2007, 14:12
Bonjour,
J'ai trouvé un script sur le net que j'ai dû un peu modifier pour les besoins. Ce script prend une date, regarde sa validité et la renvoit soit au format EU ou US (très intéressant pour plus tard !).
J'aimerai compliquer un peu plus en m'assurant que cette date se trouve bien aujourd'hui au plus tard ... c'est pour un test et je vois mal que l'on donne les résultat aujourd'hui hors qu'il est fait demain !
Voici mon script de base:
Que dois-je ajouter?
Merci
J'ai trouvé un script sur le net que j'ai dû un peu modifier pour les besoins. Ce script prend une date, regarde sa validité et la renvoit soit au format EU ou US (très intéressant pour plus tard !).
J'aimerai compliquer un peu plus en m'assurant que cette date se trouve bien aujourd'hui au plus tard ... c'est pour un test et je vois mal que l'on donne les résultat aujourd'hui hors qu'il est fait demain !
Voici mon script de base:
Code : Tout sélectionner
// **************************** Fonction 'Vérification date test' ***************************
<!-- Original: Mike Welagen ([email protected]) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
function checkdate(objName) {
var datefield = objName;
if (chkdate(objName) == false) {
datefield.select();
alert("La date n'est pas valide !");
datefield.focus();
return false;
}
else {
return true;
}
}
function chkdate(objName) {
// var strDatestyle = "US"; //United States date style
var strDatestyle = "EU"; //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "01";
strMonthArray[1] = "02";
strMonthArray[2] = "03";
strMonthArray[3] = "04";
strMonthArray[4] = "05";
strMonthArray[5] = "06";
strMonthArray[6] = "07";
strMonthArray[7] = "08";
strMonthArray[8] = "09";
strMonthArray[9] = "10";
strMonthArray[10] = "11";
strMonthArray[11] = "12";
strDate = datefield.value;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
}
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
}
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
}
}
if (isNaN(intMonth)) {
err = 3;
return false;
}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == "US") {
datefield.value = strMonthArray[intMonth-1] + "-" + intday+"-" + strYear;
}else {
datefield.value = intday + "-" + strMonthArray[intMonth-1] + "-" + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else { if ((intYear % 4) == 0) { return true; }
}
return false;
}
// **************************** Fin de la fonction 'Vérification date test' ***************************Merci