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

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

Linda Hamilton
リリース: 2024-11-30 06:05:13
オリジナル
888 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート