Формат даты, отправляемый REST API, является недопустимым в IE 11 - PullRequest
0 голосов
/ 16 ноября 2018

В настоящее время я выполняю серию вызовов REST для внутреннего API и не могу контролировать формат даты, отправляемой обратно в JSON.

отправляемый формат:

Ср, 21 ноября 2018 г. 03: 00: 00.000Z

IE11 считает эту дату недействительной. Я использовал moment.js, чтобы получить текущую дату и время и сравнить ее с датой и временем отправки в API. Он отлично работает везде, кроме IE. Я пытался сделать все возможное из документов Moment, но все, что я возвращаю, считается недействительным в IE11.

Я устанавливаю дату следующим образом

var date = new Date("Wed, 21 Nov 2018 03:00:00.000Z");  

Обновление: я также попытался установить дату, используя момент

var date = "Wed, 21 Nov 2018 03:00:00.000Z"
date = moment(d, "YYYY-MM-DD HH:mm:ss").toDate();

Я пробовал много разных форматов, и все возвращает недействительные.

Это то, что возвращается как недействительный в соответствии с IE. Я попытался сначала преобразовать дату в объект момента, а затем в допустимый формат даты, но это тоже не сработало.

Мне удалось сделать вывод, что IE не нравится .000Z в конце даты. Это сработает, если я отрежу это, но все мои времена будут в GMT.

1 Ответ

0 голосов
/ 16 ноября 2018

Формат YYYY-MM-DD HH:mm:ss, который вы вводите в свой момент momentJS, не имеет никакого сходства с строкой даты, которую вы фактически вводите ... вы указываете момент, чтобы ожидать что-то вроде "2018-11-16 17:10:02" .Возможно, вы перепутали это с форматом, который вы хотите вывести позже, я не уверен, потому что он явно даже близко не соответствует данным примера.

Проверьте http://momentjs.com/docs/#/parsing/string-format/ и выберите соответствующие токены, соответствующие формату даты, который вы предоставляете.Вот пример, который будет работать на дату, указанную в примере:

var d = "Wed, 21 Nov 2018 03:00:00.000Z";
var m = moment(d, "ddd, DD MMM YYYY HH:mm:ss.SZ"); //parse the date based on the format tokens given
console.log(m.format("YYYY-MM-DD HH:mm:ss")); //output the date in a different format
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...