Некоторые браузеры обрабатывают строки даты по-разному.Mozilla отмечает эту проблему на своей странице Date
документации:
Синтаксический анализ строк даты с помощью конструктора Date (и Date.parse, они эквивалентны) настоятельно не рекомендуется из-за различий и несоответствий в браузере.- Источник
Они также отмечают это на своей странице документации Date.parse()
, которая дает подсказку относительно решения:
Это неРекомендуется использовать Date.parse, так как до ES5 разбор строк полностью зависел от реализации.По-прежнему существует много различий в том, как разные хосты анализируют строки даты, поэтому строки даты следует анализировать вручную (библиотека может помочь, если нужно разместить много разных форматов).- Источник
Как отмечено в этого ответа , вы можете лучше всего разбить строку и использовать отдельный конструктор Date()
.Пример кода:
var arr = "2018-01-01T00:00:00".split(/\D/);
var date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
В одной функции:
function parseDateString(dateString) {
var arr = dateString.split(/\D/);
return new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
}
Я надеюсь, что это отвечает на ваш вопрос.