Moment.js在2个日期之间给出不正确的差异

时间:2017-11-25 19:58:00

标签: javascript reactjs momentjs

我正在使用以下代码在我的React应用中使用moment.js来查找2 unix时间戳之间的区别:

import Moment from 'moment';

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

其中

  • this.state.saleStartTime1511638810(星期六,2017年11月25日19:40:10 GMT)
  • this.state.saleEndTime1516909110(星期四,2018年1月25日19:38:30 GMT)

然而它正在提供输出

an hour

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

将时刻v2.19.2与节点v7.9.0

一起使用

修改:输出需要humanize',this.state.saleStartTimethis.state.saleEndTime之间的时差可以从几分钟到几个月......

1 个答案:

答案 0 :(得分: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/moment@2.19.2/moment.js"></script>
<div id="root"></div>