Moment.duration():获取总天数

时间:2018-12-23 23:18:52

标签: javascript momentjs

我需要找出一个可读的间隔时间。这是我的带有时间戳示例的代码:

    let startDT = 1542621271554; // GMT: Monday, 19 November 2018 09:54:31.554
    let endDT = 1545606452513; // GMT: Sunday, 23 December 2018 23:07:32.513

    let interval = moment.duration(endDT - startDT);
    alert(
        interval.days() +
            "d" +
            interval.hours() +
            "h" +
            interval.minutes() +
            "m" +
            interval.seconds() +
            "s"
    );

我得到以下结果:3d13h13m0s

我希望获得间隔的总天数(不考虑月份或年份)。在我的示例中,34d13h13m0s

我如何做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以使用moment.js的duration().asDays()函数。 Math.floor从持续时间中删除部分时间(小时,分钟和秒)。

let startDT = 1542621271554; // GMT: Monday, 19 November 2018 09:54:31.554
let endDT = 1545606452513; // GMT: Sunday, 23 December 2018 23:07:32.513

let interval = moment.duration(endDT - startDT);
alert(
  Math.floor(interval.asDays()) +
  "d" +
  interval.hours() +
  "h" +
  interval.minutes() +
  "m" +
  interval.seconds() +
  "s"
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

答案 1 :(得分:0)

我很快就做到了

let startDT = 1542621271554;
let endDT = 1545606452513;
let daysDiff = parseInt( (endDT-startDT) / (24*60*60*1000) );
console.log('Days:', daysDiff);
alert('Days: '+daysDiff);

答案 2 :(得分:0)

根据您的评论中的建议,只需使用asDays或根据另一个答案提到的方法手动进行计算。这个问题显示了您自己提出答案的绝对最小的努力。

let startDT = 1542621271554; // GMT: Monday, 19 November 2018 09:54:31.554
let endDT = 1545606452513; // GMT: Sunday, 23 December 2018 23:07:32.513

let interval = moment.duration(endDT - startDT);
alert(
    interval.asDays()
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>