На самом деле, Chrome более гибок для работы с другим форматом строки.Даже если вы не определите его формат строки, Chrome все равно сможет успешно конвертировать строку в дату без ошибок.Вот так:
var outputDate = new Date(Date.parse(inputString));
Но для Firefox и Safari все становится сложнее.Фактически, в документе Firefox уже сказано: (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse)
Строка, представляющая дату RFC2822 или ISO 8601 (могут использоваться другие форматы, но результаты могут быть неожиданными).
Итак, когда вы хотите использовать Date.parse в Firefox и Safari, вы должны быть осторожны. Для меня я использую хитрый метод, чтобы справиться с этим (Примечание: это можетне всегда корректно для всех случаев)
if (input.indexOf("UTC") != -1) {
var tempInput = inputString.substr(0, 10) + "T" + inputString.substr(11, 8) + "Z";
date = new Date(Date.parse(tempInput));
}
Здесь он преобразует 2013-08-08 11:52:18 UTC в 2013-08-08T11: 52: 18Z сначала, а затем его формат соответствует словам в документе Firefox. В настоящее время Date.parse всегда будет правильным в любом браузере.