zone(-1)を実行した後、実行していないときとまったく同じモーメントオブジェクトを取得します。 例:
console.log(moment()。utc()。toDate());
console.log(moment()。utc()。zone(-1).toDate());
これにより、タイムゾーンオフセットに従ってDateオブジェクトが調整されると思いますが、実際には何も行われません。
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、「ねえ、私はこの機能が必要です、どうすれば助けられますか?」という機能のギャップに近づくと、誰もがオープンソースを手伝うのが早くなります。 あなたがしたようにではなく。
最も参考になるコメント
@rquinlivanもう少し深く掘りました。 2番目の引数を
zone()
に渡して、実時間を同じに保つことができます。したがって、次のようになります。
私が信じているのはあなたが望むものです。
FWIW、「ねえ、私はこの機能が必要です、どうすれば助けられますか?」という機能のギャップに近づくと、誰もがオープンソースを手伝うのが早くなります。 あなたがしたようにではなく。