moment.js isBetween () неожиданно возвращает false - PullRequest
0 голосов
/ 29 июня 2019

У меня есть действительно простой кусок кода для moment.js (см. Ниже), он должен разрешиться в true, но вместо этого разрешиться в false.

Я получаю такое же неожиданное поведение с isBefore () или isAfter (), что наводит меня на мысль, что с определением дат что-то не так.

var format = 'YYYY-MM-DDTHH:mm:ss.SSSSZ';
var testTime = moment('Thu Jun 27 2019 05:33:19 GMT+0000', format);
var startPeriod = moment('Thu Jun 27 2019 04:00:19 GMT+0000', format);
var endPeriod = moment('Thu Jun 27 2019 10:00:19 GMT+0000', format);

console.log(
    testTime.isBetween(startPeriod, endPeriod)
);

Что такоеЯ здесь скучаю?

1 Ответ

2 голосов
/ 29 июня 2019

Второй параметр moment() принимает формат, в котором находится первый параметр. Это выглядит неправильно.Вы можете убедиться в этом, зарегистрировав время по отдельности и увидев, что они неправильные (вероятно, 1970)

См. https://momentjs.com/docs/#/parsing/creation-data/

Infact, вы должны быть в состоянии полностью удалить этот второй параметр какДата ввода уже в стандартном формате (строка ISO).

var testTime = moment('Thu Jun 27 2019 05:33:19 GMT+0000');
var startPeriod = moment('Thu Jun 27 2019 04:00:19 GMT+0000');
var endPeriod = moment('Thu Jun 27 2019 10:00:19 GMT+0000');

console.log(
    testTime.isBetween(startPeriod, endPeriod)
);
...