Moment.duration (): Получить общее количество дней - PullRequest
0 голосов
/ 24 декабря 2018

Мне нужно узнать длительность читаемого интервала.Вот мой код с примером временной метки:

    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 голосов
/ 24 декабря 2018

Как предлагается в ваших комментариях, просто используйте 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>
0 голосов
/ 24 декабря 2018

Вы можете использовать функцию 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>
0 голосов
/ 24 декабря 2018

Я сделал это без мгновений:

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