今回はIEのeasyui日付と時刻ボックスの互換性への対処方法を紹介します。 IEでeasyui日付と時刻ボックスの互換性に対処するための注意事項は次のとおりです。実際のケースを一度見てみましょう。
数日前、プロジェクトはリリース準備の最終段階に入りましたが、テスト中に、easyui の datetimebox プラグインを使用して取得した時刻が、IE の現在時刻よりも遠い時刻を取得できないことが突然判明しました。 . これは当時書かれたものです:
$(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(); } } });
Google Chrome などの主流のブラウザをテストする場合は、最初にエコーされた時刻が表示され、時刻を選択できるのですが、Internet Explorer を使用すると、時刻が選択できず、エコーされた日付が間違っていることがわかります。は現在の時刻です。 デバッグを長い間続けましたが、IEブラウザがjsのparse()メソッドをサポートしていないことがわかりました。 parse() メソッドは日付を解析し、日付のミリ秒に変換します。
フォーマッターは日付をフォーマットするためのフォーマットです。そしてパーサーはフォーマットされた日付を解析します
IEではparseが使用できないため、IEで書式設定された日付時刻を解析して表示することはできません。以下は私が変更したコードです:
$(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(); } } });
フォーマッタによってフォーマットされた日付は xxxx-xx-xx です xx:x。したがって、以下を解析する場合、日付と時刻は最初にスペースで区切られます。 ss[0]==xxxx-xx-xx、ss[1]==xx:xx。この場合、-と:を使用して数値に分割します。この場合、newを直接記述します。 Date() のパラメータで正しい日付形式を返すことができます~~ テストの結果、不正なブラウザ IE と完全に互換性があることがわかりました。
今日このメソッドを使用していて突然バグを発見しました。つまり、最初の日時枠にデータが存在しない場合に分割エラーが報告されるということです。そこで、今日修正して空の判定を追加しました。
りーここで、s は string 型であることに注意してください~そのため、判定条件を作成するために s==null を使用することはできません~
この記事の事例を読んだ後は、この方法を習得したと思います。 、php中国語ウェブサイトの記事の他の関連トピックにもご注意ください。
推奨読書:
vue は入力コンテンツにスペースが含まれているかどうかを判断します Vuex のミューテーションとアクションの使用の詳細な説明以上がIEでのeasyuiの日付と時刻ボックスの互換性への対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。