Ermitteln Sie den Zeitunterschied zwischen zwei Daten

Ich weiß, dass ich mit Momenten alles und noch einiges mehr tun kann. Peinlicherweise fällt es mir schwer, etwas zu tun, das mir einfach vorkommt: den Unterschied zwischen 2 und 5 zu erzielen.

Beispiel:

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

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

was ich versucht habe:

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  

Ich verstehe nicht, was ist das "10" da. Ich lebe in Brasilien, also sind wir utc-0300, wenn das relevant ist.

Das Ergebnis vonmoment.duration(now.diff(then)) ist eine Dauer mit den korrekten internen Werten:

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

Also, ich denke meine Frage ist: Wie wandle ich eine momente Dauer in ein Zeitintervall um? Das kann ich sicher gebrauchen

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

aber ich fühle, dass es etwas mehr gibtelegant dass ich völlig vermisse.

aktualisieren
im obigen Beispiel genauer hinschauennow ist:

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

undmoment(moment.duration(now.diff(then))) ist:

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

Ich bin nicht sicher, warum der zweite Wert in der Sommerzeit (-0200) ist ... aber ich bin sicher, dass ich keine Termine mag :(

Update 2

Nun, der Wert ist -0200, wahrscheinlich, weil der 31.12.1969 ein Datum war, an dem die Sommerzeit verwendet wurde ... also das ist es.

Antworten auf die Frage(13)

Ihre Antwort auf die Frage