「Safari Date Conundrum: Invalid Date Blues and a One Liner Fix」
を使用して Safari で新しい Date オブジェクトを作成しようとしたときMM-DD-YYYY 形式の文字列を指定すると、「無効な日付」エラーが発生する可能性があります。 Chrome や Firefox などの他のブラウザはこの形式を簡単に処理できますが、Safari には課題があります。
さらなる調査により、Safari が ISO 8601 日付形式に厳密に準拠していることが問題の根本であることが判明しました。この形式では、日付が YYYY-MM-DD 形式である必要がありますが、これは使用されている MM-DD-YYYY 文字列と互換性がありません。
別の区切り文字 (例: //、-/) は無駄であることが判明しました。 Safari は ISO 8601 形式へのこだわりを堅持しました。
ワンライナー ソリューション
外部ライブラリに頼らずに迅速かつ効果的な修正を求める人のために、簡単なワンライナーで Safari の日付解析制限を回避できます:
console.log (new Date('2011-04-12'.replace(/-/g, "/")));
この行では、replace() メソッドを使用して、MM-DD-YYYY 文字列を Safari が指定する YYYY-MM-DD 形式に変換します。認識します。すべてのハイフン (-) をスラッシュ (/) に置き換えることで、日付文字列が ISO 8601 標準に準拠するようになります。
この簡潔なソリューションにより、ユーザーは互換性を維持しながら、非標準形式を使用して新しい Date オブジェクトを作成できます。 Safari で。
以上がSafari で MM-DD-YYYY 文字列を日付オブジェクトに変換するときに発生する「無効な日付」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。