簡體   English   中英

Moment JS diff功能在React Native中不起作用

[英]Moment js diff function is not working in react native

在我的本機應用程序中,我使用moment js。 我有以下代碼。

const expDate = moment(new Date(val)).format('MM-DD-YYYY');
const nowDate = moment().format('MM-DD-YYYY');
const diff = nowDate.diff(expDate, 'years');
console.log(diff);

但這就是說,diff不是函數。 我嘗試了其他幾種方法,然后收到了棄用警告,說RFC2822,格式等。

我在上面的代碼中做錯了什么?

我假設您的val是一個字符串,您可以通過傳遞格式直接從字符串中創建一個時刻。

const expDate = Moment("06-30-2018", "MM-DD-YYYY"); // create moment from string with format 
const nowDate = Moment(); // new moment -> today 
const diff = nowDate.diff(expDate, 'days'); // returns 366 
const diff2 = nowDate.diff(expDate, 'years'); // returns 1

.format將您的時刻轉換為字符串,這就是.diff不起作用的原因

工作博覽會:

https://snack.expo.io/@tim1717/cranky-bagel

您需要在.diff之后執行.format

正確

  const expDate = moment(new Date("1999-02-18T00:00:00")); const nowDate = moment(); const nowDateFormated = nowDate.format('MM-DD-YYYY'); const expDateFormated = expDate .format('MM-DD-YYYY'); const diff = nowDate.diff(expDate, 'years'); console.log(diff); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script> 

錯誤

  const expDate = moment(new Date("1999-02-18T00:00:00")); const nowDate = moment(); const nowDateFormated = nowDate.format('MM-DD-YYYY'); const expDateFormated = expDate .format('MM-DD-YYYY'); const diff = nowDateFormated.diff(expDateFormated , 'years'); console.log(diff); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script> 

暫無
暫無

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

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