momentを使って他の国の時間を取得する方法を紹介します。
ちなみにmomentの基本的な使い方は以下の記事を参照してください。
ちなみにフロント側での使い方です。node.jsを使う場合にはmoment-timezoneの取得方法が異なります。
moment-timezoneのダウロード
他の国の時間を取得するためにmoment-timezoneを入手する必要があります。
以下のサイトからmoment_timezone.jsをダウンロード
https://momentjs.com/timezone/
ダウンロードしたら、html側で読み込みます。
<script src="moment-timezone.js"></script>
他の国の時間を取得
まず、読み込みたいタイムゾーンを使えるようにするために、必要なタイムゾーンを追加しておく必要があります。
以下のタイムゾーン一覧から必要なタイムゾーンをコピーして、
https://github.com/moment/moment-timezone/blob/develop/data/packed/latest.json
moment.tzに追加しておきます。
moment.tz.add([
'America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0',
'America/New_York|EST EDT|50 40|0101|1Lz50 1zb0 Op0',
]);
これで、時間を取得取得できます。取得してみます。
moment().tz('America/New_York').format();
"2020-10-12T17:14:03+09:00"
moment().format();
"2020-10-12T16:33:57+09:00"
上がニューヨーク時間で、下が日本時間です。
(おまけ)moment_timezone.jsが入っていないと
そもそもmoment-timezone.jsが読み込まれていないと、以下のようなエラーが出てしまいます。注意してください。
moment().tz("Asia/Tokyo").format();
VM94:1 Uncaught TypeError: moment(...).tz is not a function
at <anonymous>:1:10