Wiem, że mogę zrobić wszystko i trochę bardziej zaangażowanych Daty z momentjs. Ale zawstydzające, trudno mi zrobić coś, co wydaje się proste: uzyskać różnicę między 2 razy.
Przykład:
var now = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";
//expected result:
"00:39:30"
co próbowałem:
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
Nie rozumiem, co to tam jest „10”. Mieszkam w Brazylii, więc jesteśmy utc-0300, jeśli to istotne.
Wynikiem moment.duration(now.diff(then))
jest czas trwania z prawidłowymi wartościami wewnętrznymi:
days: 0
hours: 0
milliseconds: 0
minutes: 39
months: 0
seconds: 30
years: 0
Wydaje mi się, że moje pytanie brzmi: jak przekonwertować parametr Chwilowość na przedział czasu? Na pewno mogę użyć
duration.get("hours") +":"+ duration.get("minutes") +:+ duration.get("seconds")
ale czuję, że jest coś bardziej eleganckiego , czego mi całkowicie brakuje.
aktualizacja
szuka się bliżej, w powyższym przykładzie now
jest:
Tue Apr 09 2013 15:00:00 GMT-0300 (E. South America Standard Time)…}
i moment(moment.duration(now.diff(then)))
jest:
Wed Dec 31 1969 22:39:30 GMT-0200 (E. South America Daylight Time)…}
Nie jestem pewien, dlaczego drugą wartością jest czas letni (-0200) ... ale jestem pewien, że nie lubię dat :(
aktualizacja 2
Cóż, wartość wynosi -0200 prawdopodobnie dlatego, że 31.12.1969 była datą, w której użyto czasu dziennego ... więc to tyle.