new Date () в IE11 не принимает строку в формате даты ISO 8701 с часовым поясом - PullRequest
0 голосов
/ 06 декабря 2018

Следующий вызов для вызова конструктора Date работает в Chrome, Mozilla и Edge, но не в IE11:

new Date("2018-11-01T04:00:00.000+1000");

Примечание. Я получаю строку даты из ответа сервера и, следовательно,У меня нет контроля над ним

Только в IE11 я получаю Invalid Date в качестве возвращаемого значения.Я понял, что это из-за формата маркера часового пояса (+ и далее), потому что следующий вызов работает так, как задумано:

new Date("2018-11-01T04:00:00.000"); // No timezone

, а также этот:

new Date("2018-11-01T04:00:00.000+10:00"); // Formatted timezone

Как можно получить объект Date из строки "2018-11-01T04:00:00.000+1000" в IE11?

Соединение : в соответствующем месте, кажется, делает эту работу, но я не уверен, что это лучшее решение.

Спасибо!

1 Ответ

0 голосов
/ 14 декабря 2018

Решение моей проблемы в итоге, как я описал, было сращиванием : в правильном месте, которого еще не было:

// Call this after making sure the date doesn't contain the : at the appropriate position
function formatExtendedTimezoneIn(originalDate) {
    const timezoneDivisorIndex = originalDate.length - 4;

    const arr = originalDate.split('');
    arr.splice(timezoneDivisorIndex+2, 0, ':');
    return arr.join('');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...