簡體   English   中英

UTC 日期之間的 Moment.js 差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM