Cel: znajdź, local time
a UTC time offset
następnie utwórz adres URL w następującym formacie.
Przykładowy adres URL: / Actions / Sleep? Duration = 2002-10-10T12: 00: 00-05: 00
Format jest oparty na zaleceniach W3C: http://www.w3.org/TR/xmlschema11-2/#dateTime
Dokumentacja mówi:
Na przykład 2002-10-10T12: 00: 00−05: 00 (południe 10 października 2002 r., Środkowy czas letni i wschodni standardowy w USA) jest równy 2002-10-10T17: 00: 00Z, pięć godzin później niż 2002-10-10T12: 00: 00Z.
Więc opierając się na moim zrozumieniu, muszę znaleźć mój czas lokalny za pomocą nowej funkcji Date (), a następnie użyć funkcji getTimezoneOffset (), aby obliczyć różnicę, a następnie dołączyć go do końca ciągu.
1. Uzyskaj czas lokalny z formatem
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
wynik
2013-07-02T09:00:00
2.Uzyskaj przesunięcie czasu UTC o godzinę
var offset = local.getTimezoneOffset() / 60;
wynik
7
3.Skonstruuj adres URL (tylko część czasu)
var duration = local + "-" + offset + ":00";
wynik:
2013-07-02T09:00:00-7:00
Powyższe dane wyjściowe oznaczają, że mój czas lokalny to 2013/07/02 9 rano, a różnica w stosunku do UTC to 7 godzin (UTC jest 7 godzin przed czasem lokalnym)
Jak dotąd wydaje się, że działa, ale co się stanie, jeśli getTimezoneOffset () zwróci wartość ujemną, taką jak -120?
Zastanawiam się, jak powinien wyglądać format w takim przypadku, ponieważ nie mogę się domyślić z dokumentu W3C. Z góry dziękuję.