ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用して ISO 8601 でタイムゾーン オフセットを使用して日付をフォーマットする方法

JavaScript を使用して ISO 8601 でタイムゾーン オフセットを使用して日付をフォーマットする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-04 00:28:09155ブラウズ

How to Format Dates with Timezone Offsets in ISO 8601 Using JavaScript?

JavaScript でのタイムゾーン オフセットを使用した ISO 8601 形式の日付

ISO 8601 形式でタイムゾーン オフセットを使用して日付を効率的に形式設定するには、次のガイドラインを活用します。

W3C推奨事項:

「2002-10-10T12:00:00−05:00」の例を考えてみましょう。これは、中央夏時間 (および米国内の東部標準時) を考慮した 2002 年 10 月 10 日の正午を意味します。 UTC での同等値は「2002-10-10T17:00:00Z」で、5 時間の差です。

フォーマット手順:

  1. 現地時間を取得: new Date() を利用して現地時間を取得します。 時間。たとえば、「var local = new Date().format("yyyy-MM-ddThh:mm:ss");」となります。 "2013-07-02T09:00:00" が生成されます。
  2. Calculate UTC Time Offset: getTimezoneOffset() を使用して現地時間と UTC の差を決定します。たとえば、「var offset = local.getTimezoneOffset() / 60;」
  3. URL の構築: ローカル時間とオフセットを組み合わせて、URL の時間コンポーネントを形成します。 "varduration = ローカル "-" オフセット ":00";" "2013-07-02T09:00:00-7:00" を生成します。

負のタイムゾーン オフセットの処理:

getTimezoneOffset() が負の値を返した場合「-120」など、形式は次に従っている必要があります。 "2013-07-02T09:00:00 12:00".

ヘルパー関数:

この便利な関数は ISO 8601 の日付形式を簡素化します:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),
      dif = tzo >= 0 ? '+' : '-',
      pad = function(num) {
          return (num < 10 ? '0' : '') + num;
      };

  return date.getFullYear() +
      '-' + pad(date.getMonth() + 1) +
      '-' + pad(date.getDate()) +
      'T' + pad(date.getHours()) +
      ':' + pad(date.getMinutes()) +
      ':' + pad(date.getSeconds()) +
      dif + pad(Math.floor(Math.abs(tzo) / 60)) +
      ':' + pad(Math.abs(tzo) % 60);
}

var dt = new Date();
console.log(toIsoString(dt));

以上がJavaScript を使用して ISO 8601 でタイムゾーン オフセットを使用して日付をフォーマットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。