web-dev-qa-db-ja.com

Moment.Js:UTCおよびタイムゾーンオフセットを使用した日付のオフセット

タイムゾーンオフセットと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

23
Neil

ここに私のために働いたものがあります:

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 メソッドがあります。

19
Neil Kistner

jsTimezoneDetect ライブラリを使用して、オフセットではなくタイムゾーン名を決定します。

次に、UTCタイムスタンプでこれを使用します。

timestamp = moment.tz(timestamp, tz.name());
timestamp.format('MM/DD/YYYY h:mm A');
2
Asa Carter