Heim > Web-Frontend > js-Tutorial > Wie formatiere ich Datumsangaben mit Zeitzonenversätzen in ISO 8601 mithilfe von JavaScript?

Wie formatiere ich Datumsangaben mit Zeitzonenversätzen in ISO 8601 mithilfe von JavaScript?

Susan Sarandon
Freigeben: 2024-12-04 00:28:09
Original
147 Leute haben es durchsucht

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

ISO 8601-Formatierung von Daten mit Zeitzonenversatz in JavaScript

Um Daten mit Zeitzonenversatz im ISO 8601-Format effizient zu formatieren, nutzen Sie die folgenden Richtlinien:

W3C Empfehlung:

Betrachten Sie das Beispiel: „2002-10-10T12:00:00−05:00“. Dies bedeutet Mittag am 10. Oktober 2002 und entspricht der zentralen Sommerzeit (sowie der Eastern Standard Time in den USA). Seine Entsprechung in UTC ist „2002-10-10T17:00:00Z“, ein Unterschied von fünf Stunden.

Formatierungsschritte:

  1. Lokale Zeit ermitteln: Verwenden Sie new Date(), um die lokale Zeit zu ermitteln. Zum Beispiel „var local = new Date().format(“yyyy-MM-ddThh:mm:ss“);“ erzeugt „2013-07-02T09:00:00“.
  2. Berechnen Sie den UTC-Zeitversatz: Verwenden Sie getTimezoneOffset(), um die Differenz zwischen der Ortszeit und UTC zu ermitteln. Beispiel: „var offset = local.getTimezoneOffset() / 60;“ ergibt „7“.
  3. URL erstellen: Kombinieren Sie die Ortszeit und den Offset, um die Zeitkomponente der URL zu bilden. „var duration = local „-“ offset „:00“;“ erzeugt „2013-07-02T09:00:00-7:00“.

Umgang mit negativen Zeitzonenoffsets:

Wenn getTimezoneOffset() negative Werte zurückgibt B. „-120“, sollte das Format dem Folgenden entsprechen: „2013-07-02T09:00:00 12:00“.

Hilfsfunktion:

Diese praktische Funktion vereinfacht die Datumsformatierung nach ISO 8601:

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

var dt = new Date();
console.log(toIsoString(dt));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie formatiere ich Datumsangaben mit Zeitzonenversätzen in ISO 8601 mithilfe von 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