Выбор последнего дня недели в datetimepicker - PullRequest
2 голосов
/ 17 января 2020

Я использую moment.js, чтобы попытаться выбрать последний день недели, выбранный в datetimepicker, но он возвращает непрерывный l oop для каждого последнего дня каждой недели. Я не уверен, что делаю не так, пожалуйста, кто-нибудь может мне помочь.

Это JS, который я пробовал.

JS

$(datePick).on('change.datetimepicker', () => {
    var datetimePicker = $("#datetimepicker1").val();
    lastDate = moment(datetimePicker, "YYYY-MM-DD").day(7).format("YYYY-MM-DD");
    $(datePick).val(lastDate);
});

Спасибо!

1 Ответ

2 голосов
/ 17 января 2020

В вашем примере вы выбираете не последний день недели, а воскресенье следующей недели, используя moment(...).day(7). После этого вы устанавливаете значение, которое снова активирует функцию изменения, устанавливая значение на воскресенье неделю спустя. И так далее ... (непрерывно l oop)

Таким образом, вам нужно изменить moment(...).day(7) на moment(...).day(6), чтобы выбрать субботу текущей недели. Во второй попытке это значение не изменится снова, и l oop остановится.

Если вы хотите выбрать следующее воскресенье в качестве конца недели вместо субботы, я предлагаю сделать что-то вроде

$(datePick).on('change.datetimepicker', () => {
    var datetimePicker = $("#datetimepicker1").val();
    if (moment(datetimePicker.day() !== 0) {
        lastDate = moment(datetimePicker, "YYYY-MM-DD").day(7).format("YYYY-MM-DD");
        $(datePick).val(lastDate);
    }
});
...