2017-12-04 8 views
0

p-calendar datetimeセレクタを使用すると、クライアントのタイムゾーンにUTCの保存された日付をどのように表示できますか?primeng calendar - クライアントのタイムゾーンで表示

私はonSelectを使用して値をログに記録し、それがこの例を示します

Mon Dec 04 2017 14:17:00 GMT-0500 (Eastern Standard Time)

を私はDBに値を送信するときに、それは完全に罰金ですUTCに変換し、しかし、私はリフレッシュ言いますページを開き、値をp-calendar要素に表示すると、Mon Dec 04 2017 19:17:00(UTC)と表示されます。

私はthe docsに注ぎ込まれ、タイムゾーンの記述はまったく見つかりませんでした。選択中はタイムゾーンを考慮するが、ストレージからロードするときは考慮しないことは奇妙に思える。

私のpackage.jsonでは"primeng": "^4.3.0"を選択しています。

私が作成しているアプリは、グローバルに使用されるため、クライアントのタイムゾーンに常に時刻を表示する必要があります。

+0

を次のように[utc]=trueを指定することができます –

答えて

0

私が関与していた細かい部分を除外したことも分かりました。

Typescriptを使用すると、問題のフィールドはDate型でした。フェッチがこのフィールドにマップされると、デフォルトでブラウザのタイムゾーンが適用された新しいDateオブジェクトがインスタンス化されました。実現するには良い人。値がMon Dec 04 2017 14:17:00 (UTC)の場合、それから作成されたDateオブジェクトはMon Dec 04 2017 14:17:00 GMT-0500でした。タイムシフトはありません。そのまま値を取り、自分のタイムゾーンを適用しました。

私の問題を解決するために、タイムゾーンを明示的にUTCに設定した新しいDateインスタンスに日付の値をシフトする必要がありました。 p-calendarは残りの部分を処理し、それを現在のタイムゾーンに変換して表示しました。 https://momentjs.com:

0

私はあなたがそのようなこの非常に良いものとして、第三部品ライブラリを実装することをお勧め

<p-calendar ... [utc]='true'></p-calendar> 
関連する問題