2016-04-07 5 views
3

イオン現像にHTML5の入力日付と入力時間を使用しています。デフォルトでは、ISO Date Stringとしてバインドされ、UTCの日付時刻に変更されます。ユーザーが日付2016-06-06を選択すると、それはタイムゾーンのオフセットに応じて2016-06-07または2016-06-05になっている可能性があります。入力タイプ=時間と同様の状況。タイムゾーンオフセットのないHTML入力タイプの日時

ISO文字列の日付を、タイムゾーンの違いでオフセットするのではなく、どのユーザーが選択したままにするのが私の目的です。

何かが入力datetime-localと似ていますが、datetime-localはモバイルデバイスでサポートされていないようです。

私はinput type = "date-local"や "time-local"のようなものを探しています。

+0

あなたは、ユーザーがISO日付を使用し、ローカルであるとふるまうように、消費する前に日付のオフセットを自分で調整できます。 – dandavis

答えて

0

Javascriptの日付は常にUTCですが、あなたは地元の値を取得するだけでなく、ここに示すことができます:http://www.w3schools.com/jsref/jsref_obj_date.asp

getUTCHours()(0-23から)世界時によると、時間を返し 次に、getHours()戻り値時間(0-23)

最初のものは、入力されたものから常にUTCに変換されます。 2番目の関数はタイムゾーンオフセットを使用して返される値を計算します。

1

まず、type = "datetime"はremoved from the HTML5 standardで、代わりに "datetime-local"のみが存在していますが、すべてのモバイルブラウザで実装されているとは限りません。 type = "date"の場合、timeコンポーネントはないので、UTCの日付を直接使用してください。確かに、ローカルにUTCの日付dを変換することは一種のばかげている:

  • 新しい日付(d.toLocaleDateString())

または

  • d.setMinutes(d.getMinutes()+d.getTimezoneOffset())

  • new Date(+d+d.getTimezoneOffset()*60000)

あなたは何ができますか?

関連する問題