#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. мммм, все в порядке, я печатал другое значение, моя ошибка