Heim >Web-Frontend >js-Tutorial >Wie formatiere ich ein JavaScript-Datum in ISO 8601 mit Zeitzonenversatz?

Wie formatiere ich ein JavaScript-Datum in ISO 8601 mit Zeitzonenversatz?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 12:28:11295Durchsuche

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

ISO 8601-Formatierung des Datums mit Zeitzonenversatz in JavaScript

Dieser Artikel befasst sich mit dem häufigen Problem, wie ein JS-Datum in der ISO formatiert wird 8601-Format mit einem Offset von UTC. Zunächst wird das Ziel besprochen, die URL im richtigen Format zu formatieren, basierend auf der W3C-Empfehlung.

Die Lösung umfasst eine Reihe von Schritten:

  1. Das Lokale abrufen Zeit: Die neue Date()-Funktion wird verwendet, um die Ortszeit im gewünschten Format zu erhalten (z. B. „yyyy-MM-ddThh:mm:ss“).
  2. Berechnung des UTC-Zeitversatzes: Die Methode getTimezoneOffset() wird aufgerufen, um die Differenz zwischen Ortszeit und UTC zu berechnen. Das Ergebnis wird dann durch 60 geteilt, um den Versatz in Stunden auszudrücken.
  3. Erstellen der URL: Die Ortszeit und der berechnete UTC-Versatz werden kombiniert, um die Dauerzeichenfolge zu bilden, die die gewünschte darstellt ISO 8601-formatiertes Datum mit Zeitzonenversatz (z. B. „2013-07-02T09:00:00-7:00“).

Es stellt sich jedoch die Frage, wie mit negativen Werten für getTimezoneOffset() umgegangen werden soll. Die bereitgestellte Antwort verwendet eine Hilfsfunktion, um dieses Problem zu beheben:

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

Diese Hilfsfunktion verwendet ein Datum als Argument und gibt eine ordnungsgemäß formatierte ISO 8601-Zeichenfolge zurück, einschließlich des Zeitzonenversatzes.

Das obige ist der detaillierte Inhalt vonWie formatiere ich ein JavaScript-Datum in ISO 8601 mit Zeitzonenversatz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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