1. ホーム
  2. javascript

[解決済み] ユーザーのロケールフォーマットと時間オフセットで日付/時刻を表示する

2022-04-20 17:24:40

質問

サーバーがHTMLで日付を常にUTCで提供し、クライアントサイトのJavaScriptがそれをユーザーのローカルタイムゾーンに変換するようにしたいのです。

ユーザーのロケールの日付フォーマットで出力できればボーナス。

どのように解決するのですか?

UTCの日付で開始する最も確実な方法は、新しい Date オブジェクトを作成し setUTC… メソッドを使用して、希望する日付/時刻に設定します。

その後、様々な toLocale…String メソッドは、ローカライズされた出力を提供します。

// This would come from the server.
// Also, this whole block could probably be made into an mktime function.
// All very bare here for quick grasping.
d = new Date();
d.setUTCFullYear(2004);
d.setUTCMonth(1);
d.setUTCDate(29);
d.setUTCHours(2);
d.setUTCMinutes(45);
d.setUTCSeconds(26);

console.log(d);                        // -> Sat Feb 28 2004 23:45:26 GMT-0300 (BRT)
console.log(d.toLocaleString());       // -> Sat Feb 28 23:45:26 2004
console.log(d.toLocaleDateString());   // -> 02/28/2004
console.log(d.toLocaleTimeString());   // -> 23:45:26

参考文献の一部をご紹介します。