まず、ユーザーのブラウザで利用可能なロケール(言語と地域)を取得する必要があります。以下のコードを使用して、ユーザーのロケールを取得します。
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);
これにより、ユーザーのタイムゾーンオフセットが考慮された日時が表示されます。
以上のコード例を使用することで、ユーザーのロケール形式と時差を考慮して日時を表示することができます。この方法を使用すると、ユーザーにとってより使いやすい日時表示が可能になります。