Moment: Moment.jsを使用してUTC日付を作成する場合、zone()セッターは何もしません(2.8.3)

作成日 2014年09月11日  ·  3コメント  ·  ソース: moment/moment

zone(-1)を実行した後、実行していないときとまったく同じモーメントオブジェクトを取得します。 例:

console.log(moment()。utc()。toDate());
console.log(moment()。utc()。zone(-1).toDate());

これにより、タイムゾーンオフセットに従ってDateオブジェクトが調整されると思いますが、実際には何も行われません。

最も参考になるコメント

@rquinlivanもう少し深く掘りました。 2番目の引数をzone()に渡して、実時間を同じに保つことができます。

> moment().format()
'2014-09-15T16:59:30-04:00'
> moment().zone(-1).format()
'2014-09-15T21:59:35+01:00'
> moment().zone(-1, true).format()
'2014-09-15T16:59:38+01:00'

したがって、次のようになります。

> moment().toDate()
Mon Sep 15 2014 17:00:16 GMT-0400 (EDT)
> moment().zone(-1, true).toDate()
Mon Sep 15 2014 12:00:19 GMT-0400 (EDT)

私が信じているのはあなたが望むものです。

FWIW、「ねえ、私はこの機能が必要です、どうすれば助けられますか?」という機能のギャップに近づくと、誰もがオープンソースを手伝うのが早くなります。 あなたがしたようにではなく。

全てのコメント3件

Momentは、インスタンスを時間内に追跡します(つまり、1970 UTCからのミリ秒)。 utc()またはzone()と言うとき、あなたはその時間の表現方法を変更しています(つまり、ESTでは「9:00」と言いますが、PSTでは「6:00」と言います)。 、しかしそれは同じ時間です)。 したがって、日付に戻すと、「日付を別の方法で印刷する必要があります」というメタデータが削除されます。 それはまだ同じ時間です。

実際の時間を変更したいようですね。 「この他のゾーンでも同じように表示されるように時刻を変更する」機能はありませんが、これについては説明しました(または、@ ichernev?)

はい、実際の時間を変更したいと思います。 これはかなり制限があり、この制限のためにこのライブラリの使用を停止する必要があります。

@rquinlivanもう少し深く掘りました。 2番目の引数をzone()に渡して、実時間を同じに保つことができます。

> moment().format()
'2014-09-15T16:59:30-04:00'
> moment().zone(-1).format()
'2014-09-15T21:59:35+01:00'
> moment().zone(-1, true).format()
'2014-09-15T16:59:38+01:00'

したがって、次のようになります。

> moment().toDate()
Mon Sep 15 2014 17:00:16 GMT-0400 (EDT)
> moment().zone(-1, true).toDate()
Mon Sep 15 2014 12:00:19 GMT-0400 (EDT)

私が信じているのはあなたが望むものです。

FWIW、「ねえ、私はこの機能が必要です、どうすれば助けられますか?」という機能のギャップに近づくと、誰もがオープンソースを手伝うのが早くなります。 あなたがしたようにではなく。

このページは役に立ちましたか?
0 / 5 - 0 評価