2

moment.js用来尝试选择在一周中选择的最后一天,datetimepicker但它会为每周的最后一天返回一个连续循环。我不确定我做错了什么,请有人帮助我。

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

谢谢!

4

1 回答 1

2

在您的示例中,您没有选择一周的最后一天,而是使用moment(...).day(7). 之后设置值,这将再次触发 on change 功能,将值设置为一周后的星期日。等等……(连续循环)

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

如果您想选择下周日作为周末而不是周六,我建议您执行类似的操作

$(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);
    }
});
于 2020-01-17T09:39:20.840 回答