[英]Moment.js diff between UTC dates
我正在使用moments.js來處理 javascript 中的日期。所有日期都是 UTC(或應該是)。
我有以下日期(從當前時間開始 60 分鍾):
//Wed, 04 Apr 2012 21:09:16 GMT
to = moment.utc().add('m', 60).toDate();
現在我想得到這個日期和當前 UTC 日期時間之間的秒數差異,所以我這樣做:
seconds = moment.utc().diff(to, 'seconds');
這將返回10800
而不是3600
,所以 3 小時,而不是一個。
任何想法我做錯了什么?
謝謝!
編輯:
我將行更新為seconds = moment().diff(to, 'seconds');
它得到了正確的秒數,但它是-3600
而不是正數。
編輯:
我現在有這兩個力矩對象:
{ _d: Thu, 05 Apr 2012 17:33:18 GMT, _isUTC: true }
{ _d: Thu, 05 Apr 2012 16:38:45 GMT, _isUTC: true }
d1 和 d2。
當我做d1.diff(d2, 'hours', true);
這返回4
。 我認為這絕對與 UTC 有關,但這似乎應該有效。
這是一個合法的錯誤。 我剛剛在這里提交: https://github.com/timrwood/moment/issues/261
要繞過它,請改用以下內容。
var a = moment.utc().add('m', 60).toDate(),
b = moment().diff(to, 'seconds'); // use moment() instead of moment.utc()
此外,如果您需要獲取日期的toString
,您可以使用moment().toString()
作為包裝的Date().toString()
的代理
可能是因為您使用的是時區toDate()
。 嘗試直接使用 moment(即將其更改to = moment.utc().add('m', 60);
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.