У меня есть форма с выбором даты, которая проверяет, не старше ли выбранная дата более 4 месяцев. Но мой сценарий сейчас не работает из-за нового года (2018).

if ((today.getMonth() + 11) - (date.getMonth() + 11) > 4) {
    console.log("test");
}

Это не проверяет для месяцев 2017 года. Я не могу найти решение, чтобы исправить это, кто-нибудь знает, как это исправить?

1
can 2 Янв 2018 в 13:10

2 ответа

Лучший ответ
 if(today - date > 1000/*ms*/ * 60/*s*/ * 60/*min*/ * 24/*h*/ * 30/*days*/ * 3/*months*/)
   alert("to old!");

Альтернативно:

 const fourMonthsAgo = new Date();
 fourMonthsAgo.setMonth(fourMonthsAgo.getMonth() - 4);

 if(+fourMonthsAgo > +date)
  alert("to old");
4
Jonas Wilms 2 Янв 2018 в 10:14

Просто сравните вот так;

  var diff =(today.getTime() - date.getTime()) / 1000;
  diff = diff / (60 * 60 * 24 * 10 * 3);
  var diffMonths = Math.abs(Math.round(diff));
  if(diffMonths > 4)
  {
    var $errordate = $( "<div id='error-field' class='error-field'><p>Error text</p></div>" );
    $("#divContainer").append($errordate);
    $('#nextButton').prop('disabled', true);
  }

Демо

1
lucky 2 Янв 2018 в 10:30