bugfix> momentjs > 投稿

ユーザーにその日付の日付とタイムゾーン(例:「アメリカ/ロサンゼルス」)を入力してもらい、それをUTCに変換したいのですが、そのためにはその日の時刻のutcオフセットが必要です。

UTC日付が既にわかっているが、他の方法が必要な場合は、日付をタイムゾーンのオフセットに簡単に変換できます...

utcオフセットは夏時間のために日付に応じて変化する可能性があるため、日付とタイムゾーンを入力し、それを使用してUTCからオフセットを取得する方法が必要です。

PSTからPDTへの最新の切り替えを知っている

var tzOffset = moment.tz("3/11/2018 3:00 AM", "America/Los_Angeles").utcOffset();
document.write('utc offset is : ' + tzOffset + '<br/>') ;

しかし、正解が420の場合は480になります

parseZoneを次のように使用すると、正解420を取得できます。

var tzOffset2 = moment.parseZone("3/11/2018 3:00 AM -07:00").utcOffset();
document.write('utc offset2 is : ' + tzOffset2 + '<br/>') ;

しかし、それは私が見つけようとしている-7オフセットをすでに知っている必要があることを意味します...

「3/11/2018 3:00 AM」のような特定の日付/時間と「America/Los_Angeles」のようなタイムゾーンのutcOffsetを見つけるにはどうすればよいですか?ありがとう

回答 1 件
  • 入力が moment(String) で認識されるISO 8601またはRFC 2822形式ではありません 、したがって、 moment(String, String) を使用して2番目のパラメーターとして形式を指定する必要があります  (ドキュメントに次のように記載されています:ザ・ moment.tz  コンストラクターは、 moment と同じすべての引数を取ります  コンストラクタですが、タイムゾーン識別子として最後の引数を使用します。

    コードは次のようになります。

    var tzOffset = moment.tz("3/11/2018 3:00 AM", "D/M/YYYY h:mm A", "America/Los_Angeles").utcOffset();
    document.write('utc offset is : ' + tzOffset + '<br/>') ;
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone-with-data-2012-2022.min.js"></script>
    
    

あなたの答え