Почему я не могу рассчитать разницу времени и даты, используя момент js в этом примере? - PullRequest
2 голосов
/ 03 июня 2019

Я пытаюсь вычислить разницу во времени между началом и концом.

фрагмент с помощью moment.js

cleanStartTime = i.time_start
cleanStartTime = moment(cleanStartTime).format('LLL')
cleanEndTime = i.time_end
cleanEndTime = moment(cleanEndTime).format('LLL')
theDuration = moment.duration(cleanStartTime.diff(cleanEndTime)).humanize()
console.log(theDuration)

ошибка:

TypeError: cleanStartTime.diff is not a function

cleanStartTime выглядит так7 мая 2018 17:51

Ответы [ 2 ]

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

Вы форматируете ваши моментные объекты в строку, а затем пытаетесь использовать методы из исходных моментных объектов. Если вы посмотрите на простой пример

moment().format('LLL')

дает

"June 3, 2019 12:06 PM"

Который является строкой и поэтому не имеет метода diff, который вы пытаетесь использовать. Форматирование вашей строки после того, как все операции были выполнены (или не выполнены), должны решить вашу проблему. Например.

cleanStartTime = moment();
cleanEndTime = moment().add(100, 'days');
theDuration = moment.duration(cleanStartTime.diff(cleanEndTime)).humanize()
console.log(theDuration)

Дает то, что я подозреваю, что вы изначально искали

3 months
0 голосов
/ 03 июня 2019

Если вы попытаетесь moment(cleanStartTime).diff(cleanEndTime) вместо cleanStartTime.diff(cleanEndTime), ошибка должна исчезнуть.

...