Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Dates and nuts
Message
De
14/09/2001 12:29:27
 
 
À
14/09/2001 11:34:00
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Divers
Thread ID:
00556454
Message ID:
00556578
Vues:
17
Thanks for the JScript, I will try it on my site, perhaps this will filter out those client errors that my server will not have to deal with. However there are some (rare) browsers that still do not support scripting, and I must still do server validation.

Glenn

>Glenn -
>
>We found some JavaScript that we use to validate dates:
>
>
>function chkdate(objName,tc1) {
>var strDatestyle = tc1;
>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] = "Jan";
>strMonthArray[1] = "Feb";
>strMonthArray[2] = "Mar";
>strMonthArray[3] = "Apr";
>strMonthArray[4] = "May";
>strMonthArray[5] = "Jun";
>strMonthArray[6] = "Jul";
>strMonthArray[7] = "Aug";
>strMonthArray[8] = "Sep";
>strMonthArray[9] = "Oct";
>strMonthArray[10] = "Nov";
>strMonthArray[11] = "Dec";
>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;
>}
>}
>}
>return true;
>}
>function LeapYear(intYear) {
>if (intYear % 100 == 0) {
>if (intYear % 400 == 0) { return true; }
>}
>else {
>if ((intYear % 4) == 0) { return true; }
>}
>return false;
>}
>
>
>
>If you pass the second parameter as "US" it checks for MDY otherwise it looks for the date to be DMY.
>
>Good Luck.
>
>- George
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform