Heim > Web-Frontend > js-Tutorial > Wie generiert man Datumsangaben im ISO 8601-Format mit Zeitzonenversätzen in JavaScript?

Wie generiert man Datumsangaben im ISO 8601-Format mit Zeitzonenversätzen in JavaScript?

Linda Hamilton
Freigeben: 2024-11-30 06:05:13
Original
876 Leute haben es durchsucht

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

Daten im ISO 8601-Format mit Zeitzonenversatz in JavaScript

In JavaScript kann die Erstellung von Daten im ISO 8601-Format mit Zeitzonenversatz eine Herausforderung sein mögliche negative Zeitzonenversätze. Dieser Artikel befasst sich mit diesem Problem und bietet eine Lösung.

Das Format verstehen

Das ISO 8601-Format gibt Datumsangaben wie folgt an: JJJJ-MM-TTThh:mm:ss± hh:mm. Beispielsweise stellt 2002-10-10T12:00:00-05:00 den Mittag des 10. Oktober 2002 in der zentralen Sommerzeit (fünf Stunden hinter UTC) dar.

Lokale Zeit und UTC finden Offset

Um die ISO 8601-Zeichenfolge zu erstellen, müssen wir zunächst die Ortszeit mithilfe von new ermitteln Date() und berechnen Sie den UTC-Offset mit getTimezoneOffset(). Der Offset wird in Minuten ermittelt, also dividieren wir ihn durch 60, um die Anzahl der Stunden zu erhalten.

Umgang mit negativen Zeitzonenoffsets

Die Funktion getTimezoneOffset() kann einen negativen Wert zurückgeben Werte. In solchen Fällen müssen wir den Offset anders formatieren. Beispielsweise sollte ein Offset von -120 Minuten als 02:00 (zwei Stunden vor UTC) angezeigt werden.

Hilfsfunktion zur Formatierung

Um den Vorgang zu vereinfachen , kann eine Hilfsfunktion, toIsoString, verwendet werden, um Datumsangaben im ISO 8601-Format mit Zeitzone zu formatieren 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);
}
Nach dem Login kopieren

Diese Funktion nimmt ein Datum als Argument und formatiert es gemäß der ISO 8601-Spezifikation, einschließlich des Zeitzonenoffsets.

Beispielverwendung

Der folgende Code zeigt, wie toIsoString verwendet wird Funktion:

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

Mit diesem Ansatz können Sie Datumsangaben in JavaScript problemlos gemäß dem ISO 8601-Standard formatieren und so sicherstellen, dass sie dem richtigen Format entsprechen.

Das obige ist der detaillierte Inhalt vonWie generiert man Datumsangaben im ISO 8601-Format mit Zeitzonenversätzen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage