Tôi biết tôi có thể làm bất cứ điều gì và một số Ngày tuyệt vời hơn với khoảnh khắc. Nhưng thật xấu hổ, tôi đang gặp khó khăn khi cố gắng làm điều gì đó có vẻ đơn giản: nhận được sự khác biệt giữa 2 lần.
Thí dụ:
var now = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";
//expected result:
"00:39:30"
những gì tôi đã cố gắng:
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
Tôi không hiểu "10" đó là gì. Tôi sống ở Brazil, vì vậy chúng tôi là utc-0300 nếu điều đó có liên quan.
Kết quả moment.duration(now.diff(then))
là một khoảng thời gian với các giá trị bên trong chính xác:
days: 0
hours: 0
milliseconds: 0
minutes: 39
months: 0
seconds: 30
years: 0
Vì vậy, tôi đoán câu hỏi của tôi là: làm thế nào để chuyển đổi Thời lượng cho một khoảng thời gian? Tôi chắc chắn có thể sử dụng
duration.get("hours") +":"+ duration.get("minutes") +:+ duration.get("seconds")
nhưng tôi cảm thấy rằng có một cái gì đó thanh lịch hơn mà tôi hoàn toàn thiếu.
cập nhật
nhìn gần hơn, trong ví dụ trên now
là:
Tue Apr 09 2013 15:00:00 GMT-0300 (E. South America Standard Time)…}
và moment(moment.duration(now.diff(then)))
là:
Wed Dec 31 1969 22:39:30 GMT-0200 (E. South America Daylight Time)…}
Tôi không chắc tại sao giá trị thứ hai là trong Giờ ban ngày (-0200) ... nhưng tôi chắc chắn rằng tôi không thích ngày :(
cập nhật 2
tốt, giá trị là -0200 có lẽ vì 31/12/1969 là một ngày mà thời gian ban ngày đang được sử dụng ... vì vậy đó là.