Ошибка неверной даты в Javascript в Internet Explorer

Относительно простой javascript здесь, не уверен, почему IE ненавидит меня (относись к другим так, как ты хочешь, чтобы я относился)

var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);

Это работает в Chrome и FF, но IE выводитНедействительная дата"

Поиграй мне в этом:http://jsfiddle.net/k6yD6/

 D. Strout26 окт. 2012 г., 19:23
Я на самом деле получаю недопустимую дату и в Firefox (последняя версия, 16.0.1).
 Amitd26 окт. 2012 г., 19:25
для IE его dateObj = новая дата (год, месяц, дата [, часы [, минуты [, секунды [, мс]]]])
 sean207808 мар. 2018 г., 03:37
Или Microsoft может быть просто милым, как другие браузеры! .. ужасный браузер
 Kolob Canyon22 дек. 2017 г., 03:55
Дон»не волнуйтесь IE ненавидит всех
 Rigin04 июн. 2018 г., 07:37
csgpro.com/blog/2016/08/... , Этот пост будет кому-то полезен :)
 Christian Varga26 окт. 2012 г., 19:24
Просто убедитесь, что выиспользуется правильно поддерживаемый формат. Этот вопрос задавался много раз,stackoverflow.com/questions/3020508/...

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

Работать вIEДата должна быть в правильном формате. Я исправил эту же проблему, используя следующий формат:

var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
 Clarence08 апр. 2017 г., 00:52
Когда я передал этот код год-месяц-день в свой код, это устранило проблему ... должен дать вам 1. Тем не менее, я неДля этого не нужна новая Дата, просто измените формат в виде строки, и дата будет правильно отображаться на стороне сервера через IE 11.

то:

new Date("November 2, 2012 19:30:00");

или же

new Date(year, month, day, hours, minutes, seconds, milliseconds)
 Dexter Bengil25 янв. 2018 г., 15:55
new Date("November 2, 2012 19:30:00"); - Это спасло меня от боли.

использование

var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);

Это будет работать в IE тоже.

Решение Вопроса

Строка, переданная конструктору датыдолжна быть в формате даты RFC2822 или ISO 8601, В вашем примере это нет. Попробуйте следующее:

new Date("2012-11-02T19:30:00.000Z");

или используяальтернативный конструктор:

new Date(2012, 11, 2, 19, 30, 0)
 NitinSingh22 июн. 2017 г., 14:08
Я должен был разделить мою строку даты и добавить T & Z !!
 dougmacklin26 окт. 2012 г., 19:33
спасибо, альтернативный конструктор работает, однако первый из перечисленных вами некажется в любом браузере
 Rich O'Kelly26 окт. 2012 г., 19:56
@DougieBear Ответ обновлен - я пропустил обязательный ноль до дня
 Rich O'Kelly27 окт. 2012 г., 09:36
@kennebec Спасибо, я пропустил это. Ответ обновлен.
 kennebec26 окт. 2012 г., 22:54
новая дата ("2012-11-02T19: 30: 00.000Z»); Миллисекунды могут быть пропущены, но если они включены, перед ними должна стоять точка, а не двоеточие.

вал дату и время изначально,

function formatDateTime(date, formatString = 'MM/DD/YYYY hh:mm A') {
  return moment(new Date(date)).format(formatString);
}

Проблема была сnew Date(), Я просто удалил его, так как он уже былUTC Дата. Так что это просто,

return moment(date).format(formatString);

Это работало для меня во всех браузерах, включаяIE.

 user295446315 нояб. 2017 г., 20:08
ОП не упоминает использование библиотеки moment.js.
 turtlechief02 мая 2018 г., 21:14
Другие люди, кроме OP, просматривают эту страницу в поисках ответов, а некоторые из них используют moment.js.

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