Obtenir la différence de temps entre deux datetimes

Je sais que je ne peux rien faire et encore plus de passer sur les Dates avec momentjs. Mais embarrassante, je vais avoir un moment difficile essayer de faire quelque chose qui semble simple: geting la différence entre les 2 fois.

Exemple:

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

//expected result:
"00:39:30"

ce que j'ai essayé:

var now = moment("04/09/2013 15:00:00");
var then = moment("04/09/2013 14:20:30");

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))
//outputs 10:39:30  

Je ne comprends pas ce que c'est que "10" il. Je vis au Brésil, nous sommes donc utc-0300 si cela est pertinent.

Le résultat de moment.duration(now.diff(then)) est d'une durée avec les bonnes valeurs internes:

 days: 0
 hours: 0
 milliseconds: 0
 minutes: 39
 months: 0
 seconds: 30
 years: 0

Donc, je suppose que ma question est: comment faire pour convertir un momentjs la Durée d'un intervalle de temps? Je vous pouvez utiliser

duration.get("hours") +":"+ duration.get("minutes") +:+ duration.get("seconds")

mais j'ai l'impression qu'il y a quelque chose de plus élégant que je suis totalement en manque.

mise à jour

en regardant de plus près, dans l'exemple ci-dessus now est:

Tue Apr 09 2013 15:00:00 GMT-0300 (E. South America Standard Time)…}

et moment(moment.duration(now.diff(then))) est:

Wed Dec 31 1969 22:39:30 GMT-0200 (E. South America Daylight Time)…}

Je ne suis pas sûr pourquoi, la seconde valeur est dans la Lumière du jour Temps (-0200)... mais je suis sûr que je n'aime pas les dates 🙁

mise à jour 2

bien, la valeur est -0200 probablement parce que 31/12/1969 était un jour où la lumière du jour, le temps a été utilisé... donc c'est que.

InformationsquelleAutor Leo | 2013-09-04