在日期时间选择器中选择一周的最后一天

Selecting last day of week in datetimepicker

我正在使用 moment.js 尝试 select 在 datetimepicker 中 select 一周的最后一天,但它 returns每周最后一天的连续循环。我不确定我做错了什么请有人帮助我。

这是我试过的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);
});

谢谢!

在您的示例中,您不是 select 一周的最后一天,而是使用 moment(...).day(7) 的下一周的星期日。之后你设置值,这将再次触发on change函数,将值设置为一周后的星期日。等等……(不断循环)

因此您需要将 moment(...).day(7) 更改为 moment(...).day(6),这将 select 是本周的星期六。在第二次尝试时,它不会再次更改值并停止循环。

如果您想 select 下周日而不是周六作为本周末的结束,我建议您这样做

$(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);
    }
});