Сравните две даты IsoString в javascript - PullRequest
0 голосов
/ 07 мая 2020

Я хочу сравнить две даты строки ISO по дням, дата имеет следующий формат:

**

"2020-05-07T15: 51: 28.124Z"

**

Я сделал эту функцию, чтобы получить результат сравнения по дням:

  compareDatesByDays(higherDate, lowerDate) {
    const diffTime = Math.abs(higherDate - lowerDate)
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))

    return diffDays
  }

Math.abs дает NaN И я думаю, что это не работает с строка iso date !!

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Возможно, вы захотите использовать библиотеку, а не стандартные javascript даты. Наиболее популярным является moment.js

На данный момент. js:

moment(higherDate).diff(lowerDate, 'days') // returns int

https://momentjs.com/docs/# / displaying / difference /

0 голосов
/ 07 мая 2020

Вы можете попробовать это

  function compareDatesByDays(higherDate, lowerDate) {
    const d1 = new Date(higherDate);
    const d2 = new Date(lowerDate);
    const diffTime = Math.abs(d1.getTime() - d2.getTime());
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

    return diffDays;
  }
  console.log(compareDatesByDays("2020-05-07T15:51:28.124Z", "2020-05-03T15:51:28.124Z")); // -> 4
...