JavaScriptでユーザーのタイムゾーンを取得する方法


  1. Intl.DateTimeFormatを使用する方法:

    const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
    console.log(userTimeZone);

    この方法では、Intl.DateTimeFormat()を呼び出してタイムゾーンを含む日付フォーマットオブジェクトを作成し、resolvedOptions().timeZoneを使用してタイムゾーンを取得します。

  2. Dateオブジェクトを使用する方法:

    const userTimeZone = new Date().toLocaleString('en', { timeZoneName: 'long' }).split(', ')[1];
    console.log(userTimeZone);

    この方法では、新しいDateオブジェクトを作成し、toLocaleString()メソッドを使用してタイムゾーンを含むローカルな日付文字列を取得します。その後、split(', ')[1]を使用してタイムゾーン名の部分だけを抽出します。

  3. Moment.jsを使用する方法: Moment.jsはJavaScriptのタイムゾーン操作に便利なライブラリです。Moment.jsを使用するには、まずMoment.jsライブラリをプロジェクトに追加する必要があります。

    // Moment.jsをインストールし、import文を使用してライブラリを読み込む
    import moment from 'moment-timezone';
    // ユーザーのタイムゾーンを取得する
    const userTimeZone = moment.tz.guess();
    console.log(userTimeZone);

    Moment.jsを使用する場合、先にMoment.jsライブラリをインストールして読み込む必要があります。moment.tz.guess()を使用すると、ブラウザのタイムゾーンを推測して取得できます。

これらの方法を使用してユーザーのタイムゾーンを取得することができます。必要に応じて、取得したタイムゾーンをサーバーに送信したり、他の操作に使用することができます。