2015-09-28 35 views
7

Próbuję uzyskać różnicę w minutach między dwoma znacznikamiGet minuty, które upłynęły przez chwilę diff

Mam datownik, że wygląda to na początek

'15:44:06' 

i kiedy aby znaleźć czas, jaki upłynął tworzę nową chwila timestamp

var currentTimestamp = Moment(new Date()).format('HH:mm:ss'); 

która zwraca ten

'15:42:09' 

I wtedy próbować uzyskać różnicę Podobnie jak

var duration = Moment.duration(Moment(currentTimestamp,'HH:mm:ss').diff(Moment(userTimestamp,'HH:mm:ss'))); 

A potem próbować dostać go w minutach

var elapsedTime = duration().asMinutes(); 
console.log(elapsedTime); 

Ale w konsoli kiedy go zalogować otrzymuję ten błąd

var elapsedTime = duration().asMinutes(); 
       ^
TypeError: object is not a function 

Mam większość tego kodu od this stackoverflow

+1

Can nie wystarczy wykonać 'duration.asMinutes()'? – CollinD

+0

'duration.asMinutes()' jak mówi błąd, 'duration' jest obiektem. nie funkcja, nie 'duration()' – dievardump

+0

Ah tak małe niedopatrzenie, dzięki chłopaki, spojrzałem na to kilka razy. – Jordan

Odpowiedz

10

Możesz uzyskać różnicę za pomocą konstruktora momentu poprawnie.

Po pierwsze, kiedy zainicjować stempel czasowy, należy użyć następującego formatu:

var timestamp = moment('15:44:06','HH:mm:ss'); 

drugie, gdy chcesz użyć funkcji diff z chwili obecnej pan powinien użytkownikowi go tak:

timestamp.diff(moment()); 

Następnie dana liczba może być przekształcony minut z .asMinutes() (pierwsza)

dalszych informacji należy zapoznać się oficjalne dokumenty here.

+3

Drugi parametr parametru 'moment.diff' to" jednostka miary ". 'timestamp.diff (moment(), 'minuty')'. [Moment - Różnica] (http://momentjs.com/docs/#/displaying/difference/) – WebWanderer

0

To pytanie staje się trochę stary, to odpowiedź tylko doprowadzenia do stanu na bieżąco z roztworem pytanie szukał:

const startDate = moment(); 
... 
elapsedDuration = moment.duration(moment().diff(startDate)); 
//in minutes 
elapseDuration.asMinutes(); 

Zgodnie z dokumentacją o diff i display duration in minutes