web-dev-qa-db-ja.com

タイムゾーンオフセットなしのHTML入力タイプの日付と時刻

ionic developmentのHTML5入力日付と入力時刻を使用しています。デフォルトでは、ISO日付文字列としてバインドされ、UTC日付時刻に変更されます。ユーザーが日付2016を選択すると、私には間違っているようです-06-06、タイムゾーンオフセットに応じて2016-06-07または2016-06-05になっている可能性があります。入力タイプ=時間の場合も同様です。

私の意図は、ISO文字列の日付を、タイムゾーンの差でオフセットするのではなく、ユーザーが選択した日付のままにすることです。

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

Input type = "date-local"や "time-local"のようなものを見つけています。

11
eulercode

まず最初に興味深いのは、type = "datetime"が HTML5標準から削除されました であり、代わりに "datetime-local"のみが存在することですが、すべてのモバイルブラウザーが実装しているわけではないようです。 type = "date"の場合、時間コンポーネントがないため、UTC日付を直接使用します。確かに、UTC日付dをローカルに変換するのは、とんでもないことです。

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

または

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

または

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

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

6