ホームページ >ウェブフロントエンド >jsチュートリアル >ISO 8601 でタイムゾーン オフセットを使用して JavaScript の日付をフォーマットするにはどうすればよいですか?

ISO 8601 でタイムゾーン オフセットを使用して JavaScript の日付をフォーマットするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-28 12:28:11293ブラウズ

How to Format a JavaScript Date in ISO 8601 with Timezone Offset?

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

この記事では、ISO で JS 日付を書式設定する方法に関する一般的な問題について説明します。 UTC からのオフセットを含む 8601 形式。まず、W3C 勧告に基づいて、URL を正しい形式にフォーマットするという目標について説明します。

この解決策には、次の一連の手順が含まれます。

  1. ローカル ファイルの取得time: 新しい Date() 関数は、希望の形式で現地時間を取得するために使用されます (例: "yyyy-MM-ddThh:mm:ss").
  2. UTC 時間オフセットの計算: getTimezoneOffset() メソッドを呼び出して、現地時間と UTC の差を計算します。次に、結果を 60 で割ってオフセットを時間単位で表します。
  3. URL の構築: 現地時間と計算された UTC オフセットを組み合わせて、目的の時間を表す期間文字列を形成します。タイムゾーン オフセットを含む ISO 8601 形式の日付 (例: "2013-07-02T09:00:00-7:00").

ただし、getTimezoneOffset() の負の値をどのように処理するかという問題が生じます。提供された回答では、ヘルパー関数を利用してこれに対処しています。

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);
}

このヘルパー関数は日付を引数として受け取り、タイムゾーン オフセットを含む適切にフォーマットされた ISO 8601 文字列を返します。

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

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