タイムゾーンオフセットとUTCタイムスタンプを使用して時間を調整しようとしています。
私は次のコードを実行しています:
var date = {
utc: '2013-10-16T21:31:51',
offset: -480
}
var returnDate = moment(date.utc).utc().zone(date.offset).format('MM/DD/YYYY h:mm A');
私が期待しているのは:10/16/2013 1:31 PM
しかし、私は10/17/2013 9:31 AM
ここに私のために働いたものがあります:
var date = {
utc: '2013-10-16T21:31:51',
offset: 480
}
var returnDate = moment.utc(date.utc).zone(date.offset).format('MM/DD/YYYY h:mm A');
気づいたなら、オフセットを正の数に変更しました。これにより、望ましい結果が得られました。 -480
にオフセットが残っていた場合、出力は10/17/2013 5:31 AM
でした。
日付をUTC時間と現地時間で初期化する moment#UTC メソッドがあります。
jsTimezoneDetect ライブラリを使用して、オフセットではなくタイムゾーン名を決定します。
次に、UTCタイムスタンプでこれを使用します。
timestamp = moment.tz(timestamp, tz.name());
timestamp.format('MM/DD/YYYY h:mm A');