web-dev-qa-db-ja.com

HTML5入力タイプの値出力を指定する=日付?

現在、レガシーのホームロールシステムを使用しているアプリケーションにネイティブの日付ピッカーを追加したいと思います。日付入力のサポートはまだ普及していませんが、互換性に基づいて両方の実装を提示できれば理想的です。

HTML日付ピッカーによって与えられた値の出力を指定する方法はありますか? operaのデフォルトはyyyy-mm-dd、そして私はdd-MMM-yyyy

現在、この出力を制御する方法はありますか?

30
Stefan Kendall

HTML5の日付入力 フィールドは、使用する形式に固有です。 RFC 3339 full-date

Yyyy-mm-dd形式を使用するようにレガシー日付ピッカーを変更することはできますか(そしてそれを読み取るサーバー側を更新します)?

私はそうではないと思いますので、HTML5入力の変更イベントをリッスンし、非表示の日付値フィールドを更新して、従来の日付ピッカーの形式と一致するJavaScriptグルーコードを追加できます(yyyy-mm-ddをdd-MMMに変換します) -yyyy)。

24
Nick

Google Chromeでは、これは最近変更されました。ユーザーに表示される値は、オペレーティングシステムのロケールに基づいています。ただし、表示形式input.valueは、表示形式に関係なく常にyyyy-mm-ddとして返されます。

私の意見ではもっと便利です。

ソース:

http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome

15
Lg102

HTML日付フィールドの形式は標準です。これを変更することはできませんが、ユーザーがJavaScriptを有効にしている場合は、日付オブジェクトから探している形式に簡単に変換できます。

// Converts any valid Date string or Date object into the format dd-MMM-yyyy
function dateTransform(d) {
    var s = (new Date(d)).toString().split(' ');
    return [s[2],s[1],s[3]].join('-');
}

それ以外の場合は、ISO形式で送信し、サーバー側のソリューションを実装する必要があります。おそらく、これにより、すべての地域で標準の日付形式の使用が増える可能性があります。

0
TxRegex