Ziel: Suchen Sie die URL local time
und UTC time offset
erstellen Sie sie 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
Die Dokumentation sagt:
Zum Beispiel ist 2002-10-10T12: 00: 00−05: 00 (Mittag am 10. Oktober 2002, zentrale Sommerzeit sowie Eastern Standard Time in den USA) gleich 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 des neuen Datums () ermitteln und dann die Funktion getTimezoneOffset () verwenden, um die Differenz zu berechnen, und sie dann 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 2013/07/02 9 Uhr ist und die Differenz zu UTC 7 Stunden beträgt (UTC ist 7 Stunden vor Ortszeit).
Bisher scheint es zu funktionieren, aber was ist, wenn getTimezoneOffset () einen negativen Wert wie -120 zurückgibt?
Ich frage mich, wie das Format in einem solchen Fall aussehen soll, da ich aus dem W3C-Dokument nichts herausfinden kann. Danke im Voraus.
toISOString()
seit 2009 aufgenommen hat . Siehe meine Antwort unten.