moment.js ошибка, иногда игнорирует день

#javascript #momentjs

#javascript #momentjs

Вопрос:

У меня есть проблема с moment.js и дело в том, что у меня есть две даты (начальная и конечная), когда я инициализирую даты, начальная в порядке, а конечная дата — нет, moment.js игнорирует дневную часть даты, я устанавливаю «2020-10-05T09:00», но в консоли я получаю «2020-10T17:15Z», как вы можете видеть, в нем нет дневной части.

Вот мой код

 const ini = moment("2020-10-01T09:00");
const fin = moment("2020-10-05T09:00");
var diff = fin.diff(ini, 'seconds');
console.log(fin);
  

Консоль печатает:

{_isAMomentObject: true, _i: «2020-10T09:00Z», _isUTC: false, _pf: {…}, _locale: x, …}

Комментарии:

1. Это должно быть console.log(diff) , не так ли?

2. Кажется, это работает нормально для меня, если я регистрируюсь fin._i , я получаю 2020-10-05T09:00 .

3. Для меня это тоже работает нормально. Результат: Moment<2020-10-05T09:00:00-03:00>

Ответ №1:

Передайте формат вашей даты в качестве второго параметра для создания объекта momentjs на основе вашей даты.

Кроме того, после вычисления fin.diff(ini, 'seconds') вам нужно будет войти diff , чтобы получить количество секунд;

 const ini = moment("2020-10-01T09:00", 'YYYY-MM-DDThh:mm');
const fin = moment("2020-10-05T09:00", 'YYYY-MM-DDThh:mm');
var diff = fin.diff(ini, 'seconds');

console.log(diff);
// output: 345600  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>  

Комментарии:

1. не нужно передавать, если он зарегистрирует diff , результат все равно будет таким же, как этот..

2. Спасибо за ваш ответ, но я по-прежнему сталкиваюсь с той же проблемой даже с вашим решением, похоже, что он вылетает с датой выше, чем сегодня, я действительно не понимаю, почему. но я все равно получаю «2020-10T09:00Z»

3. @YeisonM Пожалуйста, проясните проблему, если вы запустите мой фрагмент кода, он покажет разницу за считанные секунды.

4. мммм, все в порядке, я печатал другое значение, моя ошибка