4

タイムゾーンを適用する必要がある瞬間オブジェクトがありますが、時間または分のフィールドの値は変更しません。たとえば、私の瞬間に「2013-10-10T15:00:00+00:00」という日付が含まれている場合、ゾーンを「America/Los_Angeles」に変更して、その瞬間を印刷すると「2013」が得られるようにしたいと考えています。 -10-10T15:00:00-07:00'

(Joda に精通している方のために、私はwithZoneRetainFields()機能性を追求しています)

これは、問題を示す基本的なセットアップのjsfiddleです。最後の項目を変更して、目的の出力が得られるようにするにはどうすればよいですか?

4

1 に答える 1

3

タイムゾーンを管理するために moment-timezone.js ライブラリを調べることをお勧めします。.zone()瞬間日付オブジェクトのタイムゾーンを操作するための興味深い機能を提供します。

moment.js の GitHub の問題に関する関連する問題へのリンクを含めました。

値を変更せずに瞬間のタイムゾーンを切り替える

お勧めしませんが、目的のタイムゾーンの日付を手動で調整することもできます。以下の例では、クライアントのタイムゾーンで日付を作成し、日付オブジェクトのタイムゾーンを UTC に変更してから、時間と分が同じ値を保持するように日付の値を修正しています。

// Takes a moment.js date object, and converts
// it to UTC timezone, while maintaining the 
// selected hour/mins of the input date.
function convertDateToUTC (date){

    // Current timezone's offset. Minutes offset from UTC
    var offset = date.utcOffset();

    // Convert selected date to UTC
    date = date.utc();

    // Adjust the time to.
    date.add(offset, "minutes");

    return date;
};
于 2015-12-02T18:58:56.110 に答える