Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Как посчитать количество месяцев между сегодняшним днем и введенным в поле ввода вклю (https://javascript.ru/forum/library-toolkit-framework/77769-kak-poschitat-kolichestvo-mesyacev-mezhdu-segodnyashnim-dnem-i-vvedennym-v-pole-vvoda-vklyu.html)

giwuf 18.06.2019 12:22

Как посчитать количество месяцев между сегодняшним днем и введенным в поле ввода вклю
 
Всем привет!

Есть задачка где нужно посчитать количество месяцев между сегодняшним днем и введенным в поле ввода (учитываются только будущие даты) включая текущий.

Т.е. будь сегодня 1 или 31 июля считается за месяц, только если не введенная дата совпадает с текущим месяцем - тогда 0.
Проблема в том, что библиотека moment.js считает только за месяц, если введенный день месяца позже текущего, т.е. полноценные месяцы. Мне же нужно учитывать и неполные месяцы.

https://jsfiddle.net/9vqkr6u0/

рони 18.06.2019 12:52

giwuf,
https://javascript.ru/forum/misc/128...html#post77642

Dilettante_Pro 18.06.2019 13:14

<input type="date">
<script>
   document.querySelector('input').addEventListener('change', function(e) {
      var today = new Date(),
           testDate = new Date(this.value),
           todayMonth = today.getMonth(),
           testMonth = testDate.getMonth(),
           todayYear = today.getFullYear(),
           testYear = testDate.getFullYear();
       alert(testMonth - todayMonth + (testYear - todayYear) * 12);
   });
</script>

Не совсем понял рассуждения насчет текущего...

giwuf 18.06.2019 15:02

Цитата:

Сообщение от Dilettante_Pro (Сообщение 509155)
[HTML run]<input type="date">
Не совсем понял рассуждения насчет текущего...

Dilettante_Pro, да, спасибо большое, все так!
текущего - это в смысле, если сейчас июнь месяц и задаем в поле тоже июнь, то месяц не учитывается. У вас все правильно, при таком раскладе 0 показывает


Часовой пояс GMT +3, время: 04:13.