【javascript, moment】タイムゾーンを変更する

javascript

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

参考文献

https://momentjs.com/

タイトルとURLをコピーしました