Ошибка 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/
Ответы
Ответ 1
Строка, предоставленная конструктору даты должна содержать дату форматирования RFC2822 или ISO 8601. В вашем примере это не так. Попробуйте следующее:
new Date("2012-11-02T19:30:00.000Z");
или с помощью альтернативного конструктора:
new Date(2012, 11, 2, 19, 30, 0)
Ответ 2
IE, похоже, не поддерживает миллисекунду и месяцы в Numerical String. Попробуйте следующее:
new Date("November 2, 2012 19:30:00");
или
new Date(year, month, day, hours, minutes, seconds, milliseconds)
Ответ 3
У меня была такая же проблема с Internet Explorer. Вот как я форматировал дату и время изначально,
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.
Ответ 4
Посмотрите на ссылку даты mozilla.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
Добро пожаловать!
Ответ 5
Чтобы работать в IE
, дата должна быть в правильном формате. Я исправил эту проблему, используя следующий формат:
var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
Ответ 6
использование
var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);
Это тоже будет работать в IE.