ユーザーのロケール形式と時差で日時を表示するJavaScriptの方法


まず、ユーザーのブラウザで利用可能なロケール(言語と地域)を取得する必要があります。以下のコードを使用して、ユーザーのロケールを取得します。

const userLocale = navigator.language || navigator.userLanguage;

次に、現在の日時を取得し、ユーザーのロケールに基づいて表示するためにロケール固有の形式に変換します。以下のコードを使用して、日時をユーザーのロケール形式で表示します。

const currentDateTime = new Date();
const formattedDateTime = currentDateTime.toLocaleString(userLocale);
console.log(formattedDateTime);

これにより、ユーザーがブラウザで設定したロケールに従って、日時が表示されます。

さらに、ユーザーのタイムゾーン(時差)を考慮する場合は、以下のコードを使用してユーザーのタイムゾーンオフセットを取得し、それを日時に適用します。

const timezoneOffset = currentDateTime.getTimezoneOffset();
const timezoneOffsetMilliseconds = timezoneOffset * 60 * 1000;
const adjustedDateTime = new Date(currentDateTime.getTime() + timezoneOffsetMilliseconds);
const formattedAdjustedDateTime = adjustedDateTime.toLocaleString(userLocale);
console.log(formattedAdjustedDateTime);

これにより、ユーザーのタイムゾーンオフセットが考慮された日時が表示されます。

以上のコード例を使用することで、ユーザーのロケール形式と時差を考慮して日時を表示することができます。この方法を使用すると、ユーザーにとってより使いやすい日時表示が可能になります。