Точная разница в месяце между двумя датами - MomentJS - PullRequest
1 голос
/ 19 марта 2020

Мне нужно знать разницу между месяцами, но я не могу выполнить этот расчет на основе дней, учитывая, что есть месяцы только с 28 днями.

Мне действительно нужно вывести разницу между месяцами.

Формат: ГГГГ / ДД / ММ

Старый: 2019/01/19

Новый: 2020/03/19

Между: 14

Example 01:
Old Date: 19/03/2020
New Date: 31/03/2020
Between: 0

Example: 02:
Old Date: 19/03/2020
New Date: 01/04/2020
Between: 1

Example: 03:
Old Date: 19/03/2020
New Date: 30/04/2020
Between: 1

Example: 04:
Old Date: 19/03/2020
New Date: 01/05/2020
Between: 2

Example: 05:
Old Date: 19/03/2020
New Date: 01/05/2021
Between: 14

1 Ответ

1 голос
/ 19 марта 2020

Вы можете отказаться от подсчета дней с помощью модификатора даты js .startOf('month'), а затем сравнить дни с помощью .diff():

const getDate = (date) => moment(date, 'DD/MM/YYYY').startOf('month')
const diff = Math.abs(getDate('19/03/2020').diff(getDate('01/05/2021'), 'months'));

console.log(diff)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
...