Выбор определенной даты (по названию дня) между двумя датами - PullRequest
0 голосов
/ 04 октября 2019

Я использую указатель даты jQuery UI, чтобы позволить пользователю выбрать целую неделю в нем. После того, как пользователь выбрал неделю, сохраняются значения startDate и endDate этой недели.

Например: - startDate = '10 / 28/2019 '- endDate = '11 / 03/2019'

После этого я хотел бы получить дату пятницы в этом конкретном диапазоне дат. Как мне этого добиться?

Я знаю, что могу просто добавить 4 к startDate, но самая большая проблема здесь заключается в том, что иногда месяц меняется в середине диапазона дат. И в этом случае дата будет 32.10.2009 (какого, конечно, не существует).

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2019

Основано на следующих Демо :

$(function() {
  var dateFormat = "mm/dd/yy",
    from = $("#from")
    .datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 1
    })
    .on("change", function() {
      to.datepicker("option", "minDate", getDate(this));
      var pk = getDate(this),
        wk = new Date(pk),
        fr = new Date(pk);
      fr = fr.setDate(pk.getDate() + 4);
      console.log("Friday: ", $.datepicker.formatDate(dateFormat, new Date(fr)));
      wk.setDate(pk.getDate() + 6);
      to.datepicker("setDate", wk);
    }),
    to = $("#to").datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 1
    })
    .on("change", function() {
      from.datepicker("option", "maxDate", getDate(this));
    });

  function getDate(element) {
    var date;
    try {
      date = $.datepicker.parseDate(dateFormat, element.value);
    } catch (error) {
      date = null;
    }
    return date;
  }
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">

Когда пользователь выбирает дату, например, 28.10.2009, сценарий создает две новые даты на следующую пятницу и будущую неделю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...