input type="date"のフォーマットを変更する方法はありますか?

ウェブページでHTML5の要素を扱っています。デフォルトでは、入力 type="date" は、日付を YYYY-MM-DD として表示します。

質問は、そのフォーマットを以下のように変更することは可能でしょうか?DD-MM-YYYY`のように変更することは可能でしょうか?

ソリューション

**フォーマットを変更することはできません。

over the wire形式とブラウザの表示形式を区別する必要があります。

ワイヤーフォーマット

HTML5の日付入力仕様]1は、RFC3339仕様を参照しており、この仕様では、yyyy-mm-ddに等しい完全な日付フォーマットを規定しています。yyyyy-mm-dd`.詳細は、RFC3339仕様のセクション5.6を参照してください。

表示形式

ブラウザは、日付の入力をどのように表示するかに制限はありません。本稿執筆時点では、Chrome、Edge、Firefox、Operaが日付をサポートしています(こちら参照)。これらのブラウザはすべて、日付ピッカーを表示し、入力フィールドのテキストをフォーマットします。

**デスクトップ端末

Chrome、Firefox、Operaでは、ブラウザの言語設定に基づいて入力フィールドのテキストがフォーマットされます。Edgeでは、Windowsの言語設定に基づいて表示されます。残念なことに、すべてのウェブブラウザは、オペレーティングシステムで設定されている日付の書式を無視します。これは非常に奇妙な挙動であり、この入力タイプを使用する際には考慮すべき点があると思います。例えば、OSやブラウザの言語を「en-us」に設定しているオランダのユーザーは、慣れ親しんだ書式ではなく「01/30/2019」と表示されます。30-01-2019.

Internet Explorer 9、10、11では、ワイヤ形式のテキスト入力フィールドが表示されます。

モバイルデバイス

具体的には、AndroidのChromeでは、Androidの表示言語に基づいてフォーマットが設定されています。他のブラウザでも同じではないかと思いますが、確認はできていません。

解説 (26)

ブラウザはローカルの日付形式を使用すると思います。変更することはできないと思います。もちろん、カスタムの日付ピッカーを使用することは可能です。

解説 (3)

Google Chromeの最後のベータ版では、ついに入力に type=date を使用し、フォーマットは DD-MM-YYYY となりました。

ですから、特定のフォーマットを強制する方法があるはずです。 私はHTML5のウェブページを開発していますが、日付の検索が異なるフォーマットで失敗するようになりました。

解説 (5)