2012-04-14 10 views
3

iPhoneでHTML 5フォームを使用しています。このフォームには、次のような入力要素があります。HTML 5 - iOSの入力タイプの日付フォーマット

<input id="birthdate" type="date" /> 

ユーザーがこのフィールドをクリックすると、iOSの日付ピッカーが表示されます。ユーザーが日付を選択すると、次のように表示されたフィールドに日付が表示されます:2012年4月14日

私の質問は、この日付の形式を04-14-2012テキストボックスに?または、iOSの日付形式をJavaScriptのDateオブジェクトに変換するための簡単な方法がありますか?

+2

[HTML5入力タイプの値出力の指定=日付?](http:// stackoverflow。com/questions/3496241/html5-input-type-dateの値を指定する) – epascarello

答えて

3

私はいつもフォーマットがYYYY-MM-DDであると考えていました。

W3C spec & RFC3339

とにかく、JavaScriptで変換できます。

var dateInput = document.getElementById('birthdate'); 

dateInput.addEventListener('change', function() { 
    dateInput.value = new Date(dateInput.value).toISOString().split('T')[0]; 
}, false); 
+1

あなたは正しいですか?しかし、iOSは常にそこにいる必要があります。 –

2

遊んで二つのフォーマットがあります。

  • は形式
  • 内部形式はJavaScriptに露出して、変更することはできませんサーバー

に送ら表示表示形式。日付はユーザーにどのように表示されるかはブラウザによって決まります(実際にはシステムのロケールによって決まります)。

内部形式も変更できません。ブラウザ/ロケールにかかわらず、常に ISO8601です。

0

次のようにします。

$dat = new DateTime($_POST['MyDATE']); 
$new_format = $dat->format('Y-m-d'); 
+3

なぜバックエンドがPHPで書かれていると思いますか? –

0

私は、しかし、あなたは潜在的にあなたが望む結果をシミュレートするために、いくつかの作業を行うことができ、@ PorneLの答えに同意します。私はそれを行う最良の方法ではないことを明記します。擬似コードで

  • は、2つの入力、date型の1とテキストの別のを持っています。
  • 日付を入力不可にするか、1px x 1pxを入力して、入力したい日付のサイズにします。
  • テキスト入力を重視して、隣接する日付入力に自動的にフォーカスを合わせます。
  • この時点で、ユーザーが値を取得し、お好みの書式を何でも使ってテキストフィールドに挿入し、日付フィールドの変更に
  • 日付入力フィールドを編集します。

また、最適な解決策ではないかもしれませんが、このように動作します。