6

webapp で日付を操作するために、timezones を使用して moment.js を使用しています。すべての日付を UTC で保存し、それらを UTC として UI に返します。私はユーザーのタイムゾーンを持っています。UTC 時間をローカル ユーザーのタイム ゾーンに変換したいと考えています。

var timezone = "America/New_York";
var utcDate = "2013-10-16T10:31:59.0537721Z";

var localDate = moment(utcDate).utc().tz(timezone).format()

これをやろうとすると、時間が間違っています。これを瞬間的に機能させる方法がわからない

4

4 に答える 4

5

あなたが試すことができます:

moment.utc(utcDate).tz(timezone).format()

しかし、それは問題ではありません。両方とも生成する必要があります: "2013-10-16T06:31:59-04:00".

Chrome 30で実行されているので、おそらくブラウザに関連しています。

IE8 で Moment.js 2.3.1 以前を実行している場合、これは issue #1175の副作用であり、2.4.0 で修正されました。最新バージョンに更新すると、問題が解決するはずです。

于 2013-10-16T15:40:53.487 に答える
4

同じ問題を抱えている人のために:

日付 iso 形式にはタイムゾーンが含まれている必要があります。momentjs で許可されている形式は次のとおりです。

YYYY-MMM-DDTHH:mm:ss+00:00

+00:00 は UTC を意味することに注意してください

moment('2014-10-03T09:31:18+00:00').format()

ターターンします

"2014-10-03T17:31:18+08:00"
于 2014-10-03T10:08:38.287 に答える