2017-11-25 186 views
4

我使用moment.js之间的差异不正确,我用下面的代码做出反应器应用找到2 UNIX之间的区别时间戳Moment.js给予2个日期

import Moment from 'moment'; 

Moment.duration( 
    Moment(this.state.saleEndTime).diff(Moment(this.state.saleStartTime)) 
).humanize() 

其中

  • this.state.saleStartTime1511638810(周六,2017年11月25日十九时40分10秒GMT)
  • this.state.saleEndTime1516909110(星期四,2018年1月25日十九点38分30秒GMT)

但是它给输出

an hour 

这显然是不正确的,它应该是2个月。我做错了什么?

使用时刻v2.19.2与节点V7.9.0


编辑:需要将输出humanize“版,并this.state.saleStartTimethis.state.saleEndTime之间的时间差可以从几分钟到几个月...

+0

你不应该传递一个单元[DIFF](https://momentjs.com/docs /#/显示/差值/)? –

+0

[获得Moment Js中两个日期之间的差异时间差异](https://stackoverflow.com/questions/25150570/get-hours-difference-between-two-dates-in-moment-js) – TheMintyMate

+0

@ Sag1v如果2个unix时间戳可以相距几分钟或几个月,那么我应该通过单元,并且输出应该是“人性化”的? – Nyxynyx

回答

6

我没有意识到这是一个unix邮票。
您应该使用unix方法,那么:

moment.duration(
    moment.unix(1516909110).diff(moment.unix(1511638810)) 
).humanize(); 

运行段:

const result = moment.duration(
 
    moment.unix(1516909110).diff(moment.unix(1511638810)) 
 
).humanize(); 
 

 
const App =() => (
 
    <div > 
 
    <div>{result}</div> 
 
    </div> 
 
); 
 

 
ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/npm/[email protected]/moment.js"></script> 
 
<div id="root"></div>