「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > IE の日付コンストラクターが Chrome や Firefox の日付処理と異なるのはなぜですか?

IE の日付コンストラクターが Chrome や Firefox の日付処理と異なるのはなぜですか?

2024 年 11 月 8 日に公開
ブラウズ:499

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

IE 日付コンストラクターの問題: NaN と他のブラウザーの機能

JavaScript カレンダー開発を含むプロジェクト内で、JavaScript カレンダー開発との間で日付処理に矛盾が生じました。 Internet Explorer (IE) および Firefox や Chrome などのブラウザ。具体的には、IE の日付関数は NaN (非数値) 値を生成していましたが、他のブラウザでは正常に機能していました。調査の結果、根本原因は使用されている日付形式に関連していることが明らかになりました。問題の関数 buildWeek() は、「m, d, Y」形式で指定された月曜日の日付 (たとえば、「02, 01, 2010」) に基づいて暦週のヘッダー日付を生成することを目的としていました。ただし、IE では、この形式が正しく認識されず、NaN 問題が発生しました。

この不一致を解決するために、別のアプローチが採用されました。指定された形式に依存する代わりに、split(" ") を使用して日付文字列がそのコンポーネント (日付と時刻) に分割されました。その後、日付コンポーネントは、split("-") を使用してその構成部分 (年、月、日) にさらに分割され、時間コンポーネントは、split(":") を使用してその部分 (時、分、秒) に分割されました。 .

Date のインスタンスは、これらの解析された値を使用して構築されました。このメソッドはすべてのブラウザと互換性があることが証明されており、IE、Firefox、Chrome 間で一貫した日付処理が保証されます。 //mysql のタイムスタンプ/日時フィールドから返される var a = dateStr.split(" "); var d = a[0].split("-"); var t = a[1].split(":"); var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

これを採用することでこのアプローチにより、IE の NaN エラーが首尾よく排除され、異なるブラウザ間で一貫した日付処理が実現されました。

リリースステートメント この記事は次の場所に転載されています: 1729402457 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3