私は現在、PhonegapとjQuery Mobileを使用してiOSアプリを構築しており、ユーザーが誕生日を入力するためにHTML5入力タイプの日付要素を使用しています。これは、Phonegapアプリが使用するのに完全に理にかなっています。これは、電話のネイティブdatepickerを呼び出すためです。これはすばらしいことです。
ただし、デスクトップブラウザを使用してアプリをテストする場合(Firefox 16を使用しています)、Firefoxがまだこれを実装していないため、日付ピッカーは表示されません。そのフィールドに好きなものを入力できるという事実を除いて、それはクールです-私が好きなフォーマット。
仕様では、このyyyy-mm-dd
フォーマットを使用する必要があると規定されており、私のiOSデバイスはそれを実行します。しかし、たとえば06-09-94
、を入力すると、JavaScriptの日付オブジェクトに変換しようとするとうまく機能しません。
これが私のテストです:
// Value is set to 1994-09-06
console.log(new Date($("input[type=date]")[0].value));
// > Date object representing September 6, 1994
// Value is set to 06-09-1994
console.log(new Date($("input[type=date]")[0].value));
// > Invalid date
私はどこかで内部的に(少なくともクロームの場合)、すべての「有効な」日付形式がとして表されることを読みましyyyy-mm-dd
たが、それは起こっていません。http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome
入力値はどのような形式を返しますか?
input.valueは、表示形式に関係なく、常にyyyy-mm-ddとして返されます。
それで、タイトルが示唆するように:なぜ私は非モバイルベースのWebアプリケーションでを使用したいのですか?<input type="date">