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

Tor: Finden Sie dielocal time undUTC time offset Erstellen Sie dann die URL im folgenden Format.

Beispiel-URL: / Actions / Sleep? Duration = 2002-10-10T12: 00: 00−05: 00

Das Format basiert auf der W3C-Empfehlung:http://www.w3.org/TR/xmlschema11-2/#dateTime

In der Dokumentation heißt es:

Beispiel: 2002-10-10T12: 00: 00−05: 00 (mittags am 10. Oktober 2002, zentrale Sommerzeit sowie Eastern Standard Time in den USA) entspricht 2002-10-10T17: 00: 00Z. fünf Stunden später als 2002-10-10T12: 00: 00Z.

Nach meinem Verständnis muss ich meine Ortszeit anhand von new Date () ermitteln und dann die Funktion getTimezoneOffset () verwenden, um die Differenz zu berechnen. Anschließend muss ich sie an das Ende der Zeichenfolge anhängen.

1. Holen Sie sich die Ortszeit mit Format

var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)

Ausgabe

2013-07-02T09:00:00

2.Holen Sie sich die UTC-Zeit um eine Stunde versetzt

var offset = local.getTimezoneOffset() / 60;

Ausgabe

7

3. URL erstellen (nur Zeitteil)

var duration = local + "-" + offset + ":00";

Ausgabe:

2013-07-02T09:00:00-7:00

Die obige Ausgabe bedeutet, dass meine Ortszeit am 02.07.2013 um 9 Uhr morgens ist und die Differenz zur UTC 7 Stunden beträgt (UTC ist 7 Stunden vor der Ortszeit).

Bisher scheint es aber zu funktionierenWas ist, wenn getTimezoneOffset () einen negativen Wert wie -120 zurückgibt?

Ich frage mich, wie das Format in einem solchen Fall aussehen soll, weil ich aus dem W3C-Dokument nichts herausfinden kann. Danke im Voraus.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage