Heim > Artikel > Web-Frontend > Wie man mit der Kompatibilität der Easyui-Datums- und Uhrzeitbox im IE umgeht
Dieses Mal erkläre ich Ihnen, wie Sie mit der Kompatibilität des Easyui-Datums- und Zeitfelds im IE umgehen und Dinge, die Ihrer Aufmerksamkeit bedürfenWas sind sie? Werfen wir einen Blick darauf.
Vor ein paar Tagen trat das Projekt in die letzte Vorbereitungsphase für den Start ein. Während des Tests wurde plötzlich festgestellt, dass die mit dem Datetimebox-Plugin von easyui ermittelte Zeit nicht ermittelt werden konnte später als die aktuelle Zeit im IE. Damals steht es so:
$(selector).datetimebox( { formatter : function(date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var h = date.getHours(); //获取当前小时数(0-23) var mi = date.getMinutes(); //获取当前分钟数(0-59) var s = date.getSeconds(); var result = y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + " " + (h < 10 ? '0' + h : h) + ":" + (mi < 10 ? '0' + mi : mi); //console.log(result+"--第127行"); if(second==false){ } else { result += ":" + (s < 10 ? '0' + s : s); } return result; }, parser : function(s) { var t = Date.parse(s); if (!isNaN(t)) { return new Date(t); } else { return new Date(); } } });
Beim Testen von Mainstream-Browsern wie Google Chrome gibt es kein Problem. Die anfängliche Echozeit kann angezeigt und ausgewählt werden. Wenn ich jedoch den Internet Explorer verwende, kann ich die Uhrzeit nicht auswählen und das Echodatum ist falsch. ist die aktuelle Uhrzeit. Nach langem Debuggen habe ich festgestellt, dass dh der Browser die parse()-Methode von js nicht unterstützt. Die Methode parse() analysiert das Datum und wandelt es in Millisekunden des Datums um.
Formatter ist das Format zum Formatieren von Datumsangaben. Der Parser analysiert Ihr formatiertes Datum
Da Parse im IE nicht verwendet werden kann, ist es nicht möglich, das formatierte Datum und die Uhrzeit im IE zu analysieren und anzuzeigen. Das Folgende ist der Code, den ich selbst geändert habe:
$(selector).datetimebox( { formatter : function(date) { var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); var min = date.getMinutes(); return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d)+' '+(h<10?('0'+h):h)+':'+min; }, parser : function(s) { var ss = (s.split(" ")); var ymd = ss[0].split("-"); var hms = ss[1].split(":"); //console.log(ymd+" "+hms); var y = parseInt(ymd[0],10); var m = parseInt(ymd[1],10); var d = parseInt(ymd[2],10); var h = parseInt(hms[0],10); var min = parseInt(hms[1],10); if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min)){ return new Date(y,m-1,d,h,min); } else { return new Date(); } } });
Das vom Formatierer formatierte Datum ist xxxx-xx-xx xx:x. Daher werden beim Parsen unten Datum und Uhrzeit zunächst durch das Leerzeichen dazwischen getrennt. ss[0]==xxxx-xx-xx, ss[1]==xx:xx. Verwenden Sie in diesem Fall - und:, um sie in Zahlen zu unterteilen. Schreiben Sie in diesem Fall direkt new. Das korrekte Datumsformat kann in den Parametern von Date()~~ zurückgegeben werden. Nach dem Testen ist es perfekt mit dem Cheating-Browser IE kompatibel.
Als ich sie heute verwendete, entdeckte ich plötzlich einen Fehler in dieser Methode. Wenn also zu Beginn keine Daten im Datums-/Zeitrahmen vorhanden sind, wird ein Aufteilungsfehler gemeldet. Deshalb habe ich sie heute geändert und ein leeres Urteil hinzugefügt:
if(s==""){ return new Date(); }else{ //alert(s); var ss = (s.split(" ")); var ymd = ss[0].split("-"); var hms = ss[1].split(":"); //console.log(ymd+" "+hms); var y = parseInt(ymd[0],10); var m = parseInt(ymd[1],10); var d = parseInt(ymd[2],10); var h = parseInt(hms[0],10); var min = parseInt(hms[1],10); if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min)){ return new Date(y,m-1,d,h,min); } else { return new Date(); } }
Hier ist zu beachten, dass s ein Typ String ist, sodass Sie s==null nicht verwenden können, um eine Beurteilungsbedingung zu erstellen~
Ich glaube, Sie haben die Methode nach dem Lesen gemeistert Der Fall in diesem Artikel und mehr. Bitte beachten Sie andere verwandte Artikel auf der chinesischen Website php!
Empfohlene Lektüre:
vue ermittelt, ob der Eingabeinhalt Leerzeichen enthält
Detaillierte Erklärung der Verwendung von Mutationen und Aktionen von Vuex
Das obige ist der detaillierte Inhalt vonWie man mit der Kompatibilität der Easyui-Datums- und Uhrzeitbox im IE umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!