Heim > Artikel > Web-Frontend > Zwei Methoden für JavaScript, um festzustellen, ob das eingegebene Datum ein gesetzliches Datum ist
JavaScript-Code
/// Überprüfen Sie, ob das eingegebene Datum ein korrektes Datumsformat hat:
/// Unterstützt JJJJ-MM-TT, JJJJ-MM-TT, JJJJ/M/TT, JJJJ/MM/TT vier Eingabeformate.
function checkDate(strInputDate) {
// Definiere ein konstantes Array von Tagen in einem Monat
var DA = [0, 31, 28, 31, 30, 31, 30, 31, 31 , 30, 31, 30, 31];
// Einheitliches Datumsformat
strDate = strInputDate.replace(/-/g, "/");
// Bestimmen Sie, ob das Datum wird erwartet Format
if (strDate.indexOf("/") == -1) {
warning("Please enter yyyy-M-d, yyyy-MM-dd, yyyy/M/d, yyyy/ MM/TT-Format. ")
return false;
}
// Jahr, Monat und Tag zerlegen
arrD = strDate.split("/");
if (arrD.length ! = 3) return false;
y = parseInt(arrD[0], 10);
m = parseInt(arrD[1], 10);
d = parseInt(arrD[ 2], 10) ;
//Beurteilen Sie, ob Jahr, Monat und Tag Zahlen sind
if (isNaN(y) || isNaN(m) || isNaN(d)) return false;
//Beurteilen Sie, ob der Monat zwischen 1 und 12 liegt
if (m > 12 || m < 1) return false;
//Bestimmen Sie, ob es ein Schaltjahr ist
if (isLoopYear(y)) DA[2] = 29;
//Bestimmen Sie, ob der eingegebene Tag die Gesamtzahl der Tage im aktuellen Monat überschreitet.
if (d > DA[m]) return false;
//Wenn alle Bedingungen überprüft sind, sollte es sich um ein gesetzliches Datum handeln.
// Wenn Sie das Datum einmal formatieren möchten, können Sie dies hier tun. Im Folgenden wird es in das von der Datenbank erkannte Datumsformat yyyy-MM-dd formatiert
// str = y + "-" + (m< ;10?"0"") + m + "-" + (d<10?"0"") + d;
str = y + "-" + (m < 10 ? " 0" : "") + m + "-" + (d < 10 ? "0" : "") + d;
warning(str)
return true;
}
function isLoopYear(theYear) {
return (new Date(theYear, 1, 29).getDate() == 29);
}
//Methode 2:
// / Überprüfen Sie, ob das eingegebene Datum ein korrektes Datumsformat hat:
/// Unterstützt vier Eingabeformate: jjjj-M-t, jjjj-MM-tt, jjjj/M/t und jjjj/MM/tt.
function CheckDate2(strInputDate) {
if (strInputDate == "") return false;
strInputDate = strInputDate.replace(/-/g, "/");
var d = neues Datum (strInputDate);
if (isNaN(d)) return false;
var arr = strInputDate.split("/");
return ((parseInt(arr[0], 10) == d .getFullYear()) && (parseInt(arr[1], 10) == (d.getMonth() + 1)) && (parseInt(arr[2], 10) == d.getDate()));
}