В браузере IE 11 приведенный ниже оператор возвращает неверный ответ даты: новая дата ("2016-03-09T22: 40: 05.653-0800"). Где, как на chrome/firefox, возвращается действительная дата.
Пожалуйста, предложите мне !!
Это почти форматированная дата/время ISO-8601, но не совсем... UTC offset не имеет двоеточия в нем. Похоже, что Chrome и Firefox не настолько разборчивы с их синтаксическим анализом ISO-8601 как IE.
Если вы измените код на:
new Date("2016-03-09T22:40:05.653-08:00")
... тогда это нормально как в Chrome, так и в IE11. (Я не тестировал Firefox, но я ожидаю, что все будет хорошо).
"-0800" является допустимым смещением UTC в базовом формате ISO-8601, но у него нет двоеточий. Ни Chrome, ни IE не хотят обрабатывать правильно отформатированное базовое значение ISO-8601, например "20160309T224005 -0800".
Согласно спецификации, я считаю, что часовой пояс должен быть указан как -08:00
.
Строка, предоставленная конструктору даты, должна содержать дату форматирования RFC2822 или ISO 8601. В вашем примере это не так. Попробуйте следующее:
new Date("2012-11-02T19:30:00.000Z");