ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でタイムゾーン オフセットを含む ISO 8601 形式の日付を生成する方法

JavaScript でタイムゾーン オフセットを含む ISO 8601 形式の日付を生成する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-30 06:05:13964ブラウズ

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

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

JavaScript では、タイムゾーン オフセットを使用して ISO 8601 形式で日付を構築するのが難しい場合があります。負のタイムゾーン オフセットの可能性があります。この記事では、この問題に対処し、解決策を示します。

形式について

ISO 8601 形式では、日付を次のように指定します: YYYY-MM-DDThh:mm:ss±うーん。たとえば、2002-10-10T12:00:00-05:00 は、中部夏時間 (UTC から 5 時間遅れ) での 2002 年 10 月 10 日の正午を表します。

現地時間と UTC の検索Offset

ISO 8601 文字列を構築するには、次のようにします。まず new Date() を使用して現地時間を取得し、getTimezoneOffset() を使用して UTC オフセットを計算する必要があります。オフセットは分単位で取得されるため、それを 60 で割って時間数を取得します。

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

getTimezoneOffset() 関数は負の値を返すことができます価値観。このような場合、オフセットを別の形式でフォーマットする必要があります。たとえば、-120 分のオフセットは 02:00 (UTC の 2 時間前) として表示されます。

書式設定用のヘルパー関数

プロセスを簡略化するため、ヘルパー関数 toIsoString を利用して、タイムゾーンを使用して ISO 8601 形式の日付をフォーマットできます。 offsets:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(), // Make the offset positive
      dif = tzo >= 0 ? '+' : '-', // Determine the sign
      pad = function(num) { // Ensure two-digit representation
          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);
}

この関数は日付を引数として受け取り、タイムゾーン オフセットを含む ISO 8601 仕様に従ってフォーマットします。

使用例

次のコードは、toIsoString の使用方法を示しています。 function:

var dt = new Date();
console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offset

このアプローチを使用すると、ISO 8601 標準に従って JavaScript で日付を簡単にフォーマットでき、日付が適切なフォーマットに準拠していることを確認できます。

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

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