Как ISO 8601 отформатировать дату со смещением часового пояса в JavaScript?

Цель: Найдиlocal time а такжеUTC time offset затем создайте URL в следующем формате.

Пример URL: / Actions / Sleep? Duration = 2002-10-10T12: 00: 00−05: 00

Формат основан на рекомендации W3C:http://www.w3.org/TR/xmlschema11-2/#dateTime

В документации сказано:

Например, 2002-10-10T12: 00: 00−05: 00 (полдень 10 октября 2002 года, центральное летнее время, а также стандартное восточное время в США) равно 2002-10-10T17: 00: 00Z, пять часов позже, чем 2002-10-10T12: 00: 00Z.

Исходя из моего понимания, мне нужно найти свое местное время с помощью новой функции Date (), затем использовать функцию getTimezoneOffset () для вычисления разницы, а затем присоединить ее к концу строки.

1. Получите местное время в формате

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

выход

2013-07-02T09:00:00

Смещение времени UTC 2.Get на час

var offset = local.getTimezoneOffset() / 60;

выход

7

3.Создание URL (только временная часть)

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

выход:

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

Вышеуказанный вывод означает, что мое местное время 2013/07/02 9 утра, а разница с UTC составляет 7 часов (UTC на 7 часов опережает местное время)

Пока, похоже, работает, ноЧто если getTimezoneOffset () возвращает отрицательное значение, например -120?

Мне интересно, как должен выглядеть формат в таком случае, потому что я не могу понять из документа W3C. Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос