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