簡體   English   中英

如何從 date-fns 使用 intervalToDuration function

[英]How to use intervalToDuration function from date-fns

我嘗試使用 date-fns 中的 intervalToDuration function 但我不斷收到錯誤消息,提示結束日期無效。

我的代碼如下

import { intervalToDuration} from "date-fns";

    remaining() {
          const now = new Date();
          const end = this.endDate;
          return intervalToDuration({
            start: now,
            end: end,
          });
        },

this.endDate 是動態填充的,但對於這個問題等於 2021-02-26T00:00:00.000Z

由於您的endDate變量來自 API,因此它被存儲為字符串,而不是日期。

調用intervalToDuration期望將間隔 object作為參數傳遞。 間隔由兩個日期或數字組成(unix 時間戳)

要更正此問題,您必須將 endDate 轉換為日期 object,以下是未經測試的示例;

const remaining = () => {
  const endDate = "2021-02-26T00:00:00.000Z";
  const now = new Date();
  const end = new Date(endDate);
  return intervalToDuration({
    start: now,
    end: end
  });
};

const dur = remaining();
console.log("DURRATON ", JSON.stringify(dur));
//
// Response == DURRATON  {"years":0,"months":1,"days":8,"hours":15,"minutes":42,"seconds":0}
//

注意:這不能正確處理時區。 new Date()將在客戶端時區創建一個日期時間,您從 API 的響應似乎在 GMT 時區

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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