私のアプリは、UI に表示するために特定のユーザー イベントをログに記録しています。タイムスタンプはMongoに日付として保存され、サーバーのタイムゾーンに関連するタイムゾーン情報とともにJS Dateオブジェクトになります。
私はmoment.jsを使用して日付をフォーマットしていますが、私のユーザーはオーストラリアにいて、私のアプリはHeroku (サーバーのタイムゾーンは UTC) でホストされているため、moment.js が出力する「ローカル」時間は私のユーザーのものではありません。見たい。
Moment.js を使用すると、UTC と「ローカル」時間 (サーバー上) を切り替えることができますが、異なるタイムゾーンのコンテキストで出力することはできないようです。
(サーバーのタイムゾーンを変更しても、根本的な問題は解決しません。一部のユーザーにとっては、これも間違っています。)
ノード時間ライブラリを使用して日付のタイムゾーンを変更しようとしましたが、Date.toString() を使用してタイムスタンプを出力するだけで機能しますが、日付が Moment.js によってラップされている場合は元に戻りますサーバーのタイムゾーン。
ユーザー ローカル タイムゾーンとサーバー ローカル タイムゾーンの差を計算し、Moment.js によってフォーマットされる前に日付を変更することで解決策を練ることができますが、(a) より洗練された解決策、または (b) のいずれかがあることを願っています。 )これを行う優れたライブラリ。
日付を UTC で出力し、クライアント側のライブラリで日付を再フォーマットすることもできますが、サーバー側のソリューションを使用することをお勧めします。
これに対する良い解決策、またはNode.JSアプリのこのギャップを埋めるライブラリを知っている人はいますか? これに対する確立されたベストプラクティスはありますか?